mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-07 04:50:53 +01:00
+ implemened a_cmp_reg_reg_label
git-svn-id: branches/avr@17289 -
This commit is contained in:
parent
5fd4bb70de
commit
ed8d652398
@ -1078,8 +1078,50 @@ unit cgcpu;
|
||||
|
||||
procedure tcgavr.a_cmp_reg_reg_label(list : TAsmList;size : tcgsize;
|
||||
cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel);
|
||||
var
|
||||
swapped : boolean;
|
||||
tmpreg : tregister;
|
||||
i : byte;
|
||||
begin
|
||||
{ TODO : a_cmp_reg_reg_label }
|
||||
{ swap parameters? }
|
||||
case cmp_op of
|
||||
OC_GT:
|
||||
begin
|
||||
swapped:=true;
|
||||
cmp_op:=OC_LT;
|
||||
end;
|
||||
OC_LTE:
|
||||
begin
|
||||
swapped:=true;
|
||||
cmp_op:=OC_GTE;
|
||||
end;
|
||||
OC_BE:
|
||||
begin
|
||||
swapped:=true;
|
||||
cmp_op:=OC_AE;
|
||||
end;
|
||||
OC_A:
|
||||
begin
|
||||
swapped:=true;
|
||||
cmp_op:=OC_A;
|
||||
end;
|
||||
end;
|
||||
if swapped then
|
||||
begin
|
||||
tmpreg:=reg1;
|
||||
reg1:=reg2;
|
||||
reg2:=tmpreg;
|
||||
end;
|
||||
list.concat(taicpu.op_reg_reg(A_CP,reg1,reg2));
|
||||
|
||||
for i:=2 to tcgsize2size[size] do
|
||||
begin
|
||||
reg1:=GetNextReg(reg1);
|
||||
reg2:=GetNextReg(reg2);
|
||||
list.concat(taicpu.op_reg_reg(A_CPC,reg1,reg2));
|
||||
end;
|
||||
|
||||
a_jmp_cond(list,cmp_op,l);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user