* flags2reg fixed

* fixed 64bit not
This commit is contained in:
peter 2003-09-14 21:35:52 +00:00
parent 46e1925e11
commit dfd282aac6

View File

@ -755,14 +755,13 @@ implementation
procedure TCgSparc.g_flags2reg(list:TAasmOutput;Size:TCgSize;const f:tresflags;reg:TRegister);
var
ai : taicpu;
hl : tasmlabel;
begin
ai:=Taicpu.Op_reg_reg(A_RDPSR,NR_PSR,reg);
{$warning Need to retrieve the correct flag setting in reg}
// ai.SetCondition(flags_to_cond(f));
list.Concat(ai);
{ Delay slot }
list.Concat(TAiCpu.Op_none(A_NOP));
objectlibrary.getlabel(hl);
a_load_const_reg(list,size,1,reg);
a_jmp_flags(list,f,hl);
a_load_const_reg(list,size,0,reg);
a_label(list,hl);
end;
@ -1057,11 +1056,6 @@ implementation
op1:=A_AND;
op2:=A_AND;
end;
OP_NOT :
begin
op1:=A_NOT;
op2:=A_NOT;
end;
else
internalerror(200203241);
end;
@ -1080,6 +1074,12 @@ implementation
list.concat(taicpu.op_reg_const_reg(A_ADDX,regdst.reglo,aword(-1),regdst.reglo));
exit;
end;
OP_NOT :
begin
list.concat(taicpu.op_reg_reg_reg(A_XNOR,regsrc.reglo,NR_G0,regdst.reglo));
list.concat(taicpu.op_reg_reg_reg(A_XNOR,regsrc.reghi,NR_G0,regdst.reghi));
exit;
end;
end;
get_64bit_ops(op,op1,op2);
list.concat(taicpu.op_reg_reg_reg(op1,regdst.reglo,regsrc.reglo,regdst.reglo));
@ -1107,7 +1107,11 @@ begin
end.
{
$Log$
Revision 1.67 2003-09-14 19:19:04 peter
Revision 1.68 2003-09-14 21:35:52 peter
* flags2reg fixed
* fixed 64bit not
Revision 1.67 2003/09/14 19:19:04 peter
* updates for new ra
Revision 1.66 2003/09/03 15:55:01 peter