mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 11:59:19 +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);
|
procedure TCgSparc.g_flags2reg(list:TAasmOutput;Size:TCgSize;const f:tresflags;reg:TRegister);
|
||||||
var
|
var
|
||||||
ai : taicpu;
|
hl : tasmlabel;
|
||||||
begin
|
begin
|
||||||
ai:=Taicpu.Op_reg_reg(A_RDPSR,NR_PSR,reg);
|
objectlibrary.getlabel(hl);
|
||||||
{$warning Need to retrieve the correct flag setting in reg}
|
a_load_const_reg(list,size,1,reg);
|
||||||
// ai.SetCondition(flags_to_cond(f));
|
a_jmp_flags(list,f,hl);
|
||||||
list.Concat(ai);
|
a_load_const_reg(list,size,0,reg);
|
||||||
{ Delay slot }
|
a_label(list,hl);
|
||||||
list.Concat(TAiCpu.Op_none(A_NOP));
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1057,11 +1056,6 @@ implementation
|
|||||||
op1:=A_AND;
|
op1:=A_AND;
|
||||||
op2:=A_AND;
|
op2:=A_AND;
|
||||||
end;
|
end;
|
||||||
OP_NOT :
|
|
||||||
begin
|
|
||||||
op1:=A_NOT;
|
|
||||||
op2:=A_NOT;
|
|
||||||
end;
|
|
||||||
else
|
else
|
||||||
internalerror(200203241);
|
internalerror(200203241);
|
||||||
end;
|
end;
|
||||||
@ -1080,6 +1074,12 @@ implementation
|
|||||||
list.concat(taicpu.op_reg_const_reg(A_ADDX,regdst.reglo,aword(-1),regdst.reglo));
|
list.concat(taicpu.op_reg_const_reg(A_ADDX,regdst.reglo,aword(-1),regdst.reglo));
|
||||||
exit;
|
exit;
|
||||||
end;
|
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;
|
end;
|
||||||
get_64bit_ops(op,op1,op2);
|
get_64bit_ops(op,op1,op2);
|
||||||
list.concat(taicpu.op_reg_reg_reg(op1,regdst.reglo,regsrc.reglo,regdst.reglo));
|
list.concat(taicpu.op_reg_reg_reg(op1,regdst.reglo,regsrc.reglo,regdst.reglo));
|
||||||
@ -1107,7 +1107,11 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* updates for new ra
|
||||||
|
|
||||||
Revision 1.66 2003/09/03 15:55:01 peter
|
Revision 1.66 2003/09/03 15:55:01 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user