mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-16 02:10:44 +01:00
+ MIPS: initial target-specific unary minus node.
git-svn-id: trunk@24417 -
This commit is contained in:
parent
17e7ef0d28
commit
1f8bd4a2d1
@ -28,7 +28,7 @@ unit ncpumat;
|
||||
interface
|
||||
|
||||
uses
|
||||
node, nmat, ncgmat;
|
||||
node, nmat, ncgmat, cgbase;
|
||||
|
||||
type
|
||||
tMIPSELmoddivnode = class(tmoddivnode)
|
||||
@ -45,6 +45,10 @@ type
|
||||
procedure second_boolean; override;
|
||||
end;
|
||||
|
||||
TMIPSunaryminusnode = class(tcgunaryminusnode)
|
||||
procedure emit_float_sign_change(r: tregister; _size : tcgsize);override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
@ -54,7 +58,7 @@ uses
|
||||
aasmbase, aasmcpu, aasmtai, aasmdata,
|
||||
defutil,
|
||||
procinfo,
|
||||
cgbase, cgobj, hlcgobj, pass_2,
|
||||
cgobj, hlcgobj, pass_2,
|
||||
ncon,
|
||||
cpubase,
|
||||
ncgutil, cgcpu, cgutils;
|
||||
@ -322,8 +326,26 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
{*****************************************************************************
|
||||
TMIPSunaryminusnode
|
||||
*****************************************************************************}
|
||||
|
||||
procedure TMIPSunaryminusnode.emit_float_sign_change(r: tregister; _size : tcgsize);
|
||||
begin
|
||||
case _size of
|
||||
OS_F32:
|
||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_NEG_s,r,r));
|
||||
OS_F64:
|
||||
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_NEG_d,r,r));
|
||||
else
|
||||
internalerror(2013030501);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
cmoddivnode := tMIPSELmoddivnode;
|
||||
cshlshrnode := tMIPSELshlshrnode;
|
||||
cnotnode := tMIPSELnotnode;
|
||||
cunaryminusnode := TMIPSunaryminusnode;
|
||||
end.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user