+ implemened a_cmp_reg_reg_label

git-svn-id: branches/avr@17289 -
This commit is contained in:
florian 2011-04-10 18:39:07 +00:00
parent 5fd4bb70de
commit ed8d652398

View File

@ -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;