mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 00:39:15 +02:00
* m68k: fixed comparison of small sets, it should not modify sides. tw18013 is now correct when compiled with -O2.
git-svn-id: trunk@28100 -
This commit is contained in:
parent
f0346c096f
commit
15e374f3c6
@ -480,19 +480,11 @@ implementation
|
|||||||
lten,
|
lten,
|
||||||
gten:
|
gten:
|
||||||
begin
|
begin
|
||||||
tmpreg:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
|
tmpreg:=cg.getintregister(current_asmdata.CurrAsmList,left.location.size);
|
||||||
if right.location.loc=LOC_CONSTANT then
|
if right.location.loc=LOC_CONSTANT then
|
||||||
begin
|
hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,false);
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_MOVE,S_L,right.location.value,tmpreg));
|
cg.a_op_reg_reg_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,left.location.register,right.location.register,tmpreg);
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_AND,S_L,tmpreg,left.location.register));
|
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,S_L,tmpreg,right.location.register));
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,S_L,tmpreg,left.location.register));
|
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_MOVE,S_L,right.location.register,tmpreg));
|
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_AND,S_L,tmpreg,left.location.register));
|
|
||||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,S_L,tmpreg,left.location.register));
|
|
||||||
end;
|
|
||||||
location.resflags:=F_E;
|
location.resflags:=F_E;
|
||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user