mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-02 20:07:09 +01:00
* fix newra cycle for i386
This commit is contained in:
parent
2b312f6e8c
commit
a71427cf2c
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user