mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-23 05:11:38 +02:00
+ implemented tcgz80.a_jmp_cond
git-svn-id: branches/z80@44997 -
This commit is contained in:
parent
39574ac70e
commit
0b3b8401df
@ -2256,75 +2256,31 @@ unit cgcpu;
|
||||
|
||||
|
||||
procedure tcgz80.a_jmp_cond(list : TAsmList;cond : TOpCmp;l: tasmlabel);
|
||||
var
|
||||
ai1,ai2 : taicpu;
|
||||
hl : TAsmLabel;
|
||||
begin
|
||||
list.Concat(tai_comment.Create(strpnew('WARNING! not implemented: a_jmp_cond')));
|
||||
//ai1:=Taicpu.Op_sym(A_BRxx,l);
|
||||
//ai1.is_jmp:=true;
|
||||
//hl:=nil;
|
||||
//case cond of
|
||||
// OC_EQ:
|
||||
// ai1.SetCondition(C_EQ);
|
||||
// OC_GT:
|
||||
// begin
|
||||
// { emulate GT }
|
||||
// current_asmdata.getjumplabel(hl);
|
||||
// ai2:=Taicpu.Op_Sym(A_BRxx,hl);
|
||||
// ai2.SetCondition(C_EQ);
|
||||
// ai2.is_jmp:=true;
|
||||
// list.concat(ai2);
|
||||
//
|
||||
// ai1.SetCondition(C_GE);
|
||||
// end;
|
||||
// OC_LT:
|
||||
// ai1.SetCondition(C_LT);
|
||||
// OC_GTE:
|
||||
// ai1.SetCondition(C_GE);
|
||||
// OC_LTE:
|
||||
// begin
|
||||
// { emulate LTE }
|
||||
// ai2:=Taicpu.Op_Sym(A_BRxx,l);
|
||||
// ai2.SetCondition(C_EQ);
|
||||
// ai2.is_jmp:=true;
|
||||
// list.concat(ai2);
|
||||
//
|
||||
// ai1.SetCondition(C_LT);
|
||||
// end;
|
||||
// OC_NE:
|
||||
// ai1.SetCondition(C_NE);
|
||||
// OC_BE:
|
||||
// begin
|
||||
// { emulate BE }
|
||||
// ai2:=Taicpu.Op_Sym(A_BRxx,l);
|
||||
// ai2.SetCondition(C_EQ);
|
||||
// ai2.is_jmp:=true;
|
||||
// list.concat(ai2);
|
||||
//
|
||||
// ai1.SetCondition(C_LO);
|
||||
// end;
|
||||
// OC_B:
|
||||
// ai1.SetCondition(C_LO);
|
||||
// OC_AE:
|
||||
// ai1.SetCondition(C_SH);
|
||||
// OC_A:
|
||||
// begin
|
||||
// { emulate A (unsigned GT) }
|
||||
// current_asmdata.getjumplabel(hl);
|
||||
// ai2:=Taicpu.Op_Sym(A_BRxx,hl);
|
||||
// ai2.SetCondition(C_EQ);
|
||||
// ai2.is_jmp:=true;
|
||||
// list.concat(ai2);
|
||||
//
|
||||
// ai1.SetCondition(C_SH);
|
||||
// end;
|
||||
// else
|
||||
// internalerror(2011082501);
|
||||
//end;
|
||||
//list.concat(ai1);
|
||||
//if assigned(hl) then
|
||||
// a_label(list,hl);
|
||||
case cond of
|
||||
OC_EQ:
|
||||
a_jmp_unsigned_cmp_3way(list,nil,l,nil);
|
||||
OC_NE:
|
||||
a_jmp_unsigned_cmp_3way(list,l,nil,l);
|
||||
OC_A:
|
||||
a_jmp_unsigned_cmp_3way(list,nil,nil,l);
|
||||
OC_B:
|
||||
a_jmp_unsigned_cmp_3way(list,l,nil,nil);
|
||||
OC_AE:
|
||||
a_jmp_unsigned_cmp_3way(list,nil,l,l);
|
||||
OC_BE:
|
||||
a_jmp_unsigned_cmp_3way(list,l,l,nil);
|
||||
OC_GT:
|
||||
a_jmp_signed_cmp_3way(list,nil,nil,l);
|
||||
OC_LT:
|
||||
a_jmp_signed_cmp_3way(list,l,nil,nil);
|
||||
OC_GTE:
|
||||
a_jmp_signed_cmp_3way(list,nil,l,l);
|
||||
OC_LTE:
|
||||
a_jmp_signed_cmp_3way(list,l,l,nil);
|
||||
else
|
||||
internalerror(2011082501);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user