- MIPS: removed target-specific real_to_real conversion, generic code handles it just well.

git-svn-id: trunk@25083 -
This commit is contained in:
sergei 2013-07-11 08:28:24 +00:00
parent ac2006898f
commit e82ecd66f3

View File

@ -40,7 +40,7 @@ type
{ procedure second_chararray_to_string;override; }
{ procedure second_char_to_string;override; }
procedure second_int_to_real; override;
procedure second_real_to_real; override;
{ procedure second_real_to_real; override; }
{ procedure second_cord_to_pointer;override; }
{ procedure second_proc_to_procvar;override; }
{ procedure second_bool_to_int;override; }
@ -207,32 +207,6 @@ begin
end;
procedure tMIPSELtypeconvnode.second_real_to_real;
const
conv_op: array[tfloattype, tfloattype] of tasmop = (
{ from: s32 s64 s80 sc80 c64 cur f128 }
{ s32 } (A_MOV_S, A_CVT_S_D, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE),
{ s64 } (A_CVT_D_S, A_MOV_D, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE),
{ s80 } (A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE),
{ sc80 } (A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE),
{ c64 } (A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE),
{ cur } (A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE),
{ f128 } (A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE, A_NONE)
);
var
op: tasmop;
begin
location_reset(location, LOC_FPUREGISTER, def_cgsize(resultdef));
location_force_fpureg(current_asmdata.CurrAsmList, left.location, False);
{ Convert value in fpu register from integer to float }
op := conv_op[tfloatdef(resultdef).floattype, tfloatdef(left.resultdef).floattype];
if op = A_NONE then
internalerror(200401121);
location.Register := cg.getfpuregister(current_asmdata.CurrAsmList, location.size);
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(op, location.Register, left.location.Register));
end;
procedure tMIPSELtypeconvnode.second_int_to_bool;
var
hreg1, hreg2: tregister;