mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 20:19:25 +02:00
* flags2reg fixed
* fixed 64bit not
This commit is contained in:
parent
46e1925e11
commit
dfd282aac6
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user