* fix newra cycle for i386

This commit is contained in:
peter 2003-06-12 18:31:18 +00:00
parent 2b312f6e8c
commit a71427cf2c
2 changed files with 14 additions and 8 deletions

View File

@ -116,7 +116,7 @@ unit cgcpu;
OP_NEG :
begin
if (regsrc.reglo.number<>regdst.reglo.number) then
a_load64_reg_reg(list,regsrc,regdst);
a_load64_reg_reg(list,regsrc,regdst{$ifdef newra},false{$endif});
list.concat(taicpu.op_reg(A_NOT,S_L,regdst.reghi));
list.concat(taicpu.op_reg(A_NEG,S_L,regdst.reglo));
list.concat(taicpu.op_const_reg(A_SBB,S_L,aword(-1),regdst.reghi));
@ -125,7 +125,7 @@ unit cgcpu;
OP_NOT :
begin
if (regsrc.reglo.number<>regdst.reglo.number) then
a_load64_reg_reg(list,regsrc,regdst);
a_load64_reg_reg(list,regsrc,regdst{$ifdef newra},false{$endif});
list.concat(taicpu.op_reg(A_NOT,S_L,regdst.reghi));
list.concat(taicpu.op_reg(A_NOT,S_L,regdst.reglo));
exit;
@ -193,7 +193,10 @@ begin
end.
{
$Log$
Revision 1.35 2003-06-03 21:11:09 peter
Revision 1.36 2003-06-12 18:31:18 peter
* fix newra cycle for i386
Revision 1.35 2003/06/03 21:11:09 peter
* cg.a_load_* get a from and to size specifier
* makeregsize only accepts newregister
* i386 uses generic tcgnotnode,tcgunaryminus

View File

@ -403,7 +403,7 @@ unit cgx86;
else
pushsize:=OS_32;
{$ifdef newra}
tmpreg:=rg.getregisterint(list,pushsize)
tmpreg:=rg.getregisterint(list,pushsize);
{$else}
tmpreg:=get_scratch_reg_int(list,pushsize);
{$endif}
@ -1186,10 +1186,10 @@ unit cgx86;
end;
dec(len,copysize);
r:=rg.getregisterint(list,cgsize);
a_load_ref_reg(list,cgsize,srcref,r);
a_load_ref_reg(list,cgsize,cgsize,srcref,r);
if (len=0) and delsource then
reference_release(list,source);
a_load_reg_ref(list,cgsize,r,dstref);
a_load_reg_ref(list,cgsize,cgsize,r,dstref);
inc(srcref.offset,copysize);
inc(dstref.offset,copysize);
rg.ungetregisterint(list,r);
@ -1201,7 +1201,7 @@ unit cgx86;
a_loadaddr_ref_reg(list,dest,destreg);
srcreg:=rg.getexplicitregisterint(list,NR_ESI);
if loadref then
a_load_ref_reg(list,OS_ADDR,source,srcreg)
a_load_ref_reg(list,OS_ADDR,OS_ADDR,source,srcreg)
else
begin
a_loadaddr_ref_reg(list,source,srcreg);
@ -1932,7 +1932,10 @@ unit cgx86;
end.
{
$Log$
Revision 1.53 2003-06-07 10:24:10 peter
Revision 1.54 2003-06-12 18:31:18 peter
* fix newra cycle for i386
Revision 1.53 2003/06/07 10:24:10 peter
* fixed copyvaluepara for left-to-right pushing
Revision 1.52 2003/06/07 10:06:55 jonas