+ implemented tcgz80.a_jmp_cond

git-svn-id: branches/z80@44997 -
This commit is contained in:
nickysn 2020-04-22 16:10:23 +00:00
parent 39574ac70e
commit 0b3b8401df

View File

@ -2256,75 +2256,31 @@ unit cgcpu;
procedure tcgz80.a_jmp_cond(list : TAsmList;cond : TOpCmp;l: tasmlabel); procedure tcgz80.a_jmp_cond(list : TAsmList;cond : TOpCmp;l: tasmlabel);
var
ai1,ai2 : taicpu;
hl : TAsmLabel;
begin begin
list.Concat(tai_comment.Create(strpnew('WARNING! not implemented: a_jmp_cond'))); case cond of
//ai1:=Taicpu.Op_sym(A_BRxx,l); OC_EQ:
//ai1.is_jmp:=true; a_jmp_unsigned_cmp_3way(list,nil,l,nil);
//hl:=nil; OC_NE:
//case cond of a_jmp_unsigned_cmp_3way(list,l,nil,l);
// OC_EQ: OC_A:
// ai1.SetCondition(C_EQ); a_jmp_unsigned_cmp_3way(list,nil,nil,l);
// OC_GT: OC_B:
// begin a_jmp_unsigned_cmp_3way(list,l,nil,nil);
// { emulate GT } OC_AE:
// current_asmdata.getjumplabel(hl); a_jmp_unsigned_cmp_3way(list,nil,l,l);
// ai2:=Taicpu.Op_Sym(A_BRxx,hl); OC_BE:
// ai2.SetCondition(C_EQ); a_jmp_unsigned_cmp_3way(list,l,l,nil);
// ai2.is_jmp:=true; OC_GT:
// list.concat(ai2); a_jmp_signed_cmp_3way(list,nil,nil,l);
// OC_LT:
// ai1.SetCondition(C_GE); a_jmp_signed_cmp_3way(list,l,nil,nil);
// end; OC_GTE:
// OC_LT: a_jmp_signed_cmp_3way(list,nil,l,l);
// ai1.SetCondition(C_LT); OC_LTE:
// OC_GTE: a_jmp_signed_cmp_3way(list,l,l,nil);
// ai1.SetCondition(C_GE); else
// OC_LTE: internalerror(2011082501);
// begin end;
// { 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);
end; end;