mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 03:49:19 +02:00
- MIPS: removed target-specific real_to_real conversion, generic code handles it just well.
git-svn-id: trunk@25083 -
This commit is contained in:
parent
ac2006898f
commit
e82ecd66f3
@ -40,7 +40,7 @@ type
|
|||||||
{ procedure second_chararray_to_string;override; }
|
{ procedure second_chararray_to_string;override; }
|
||||||
{ procedure second_char_to_string;override; }
|
{ procedure second_char_to_string;override; }
|
||||||
procedure second_int_to_real; 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_cord_to_pointer;override; }
|
||||||
{ procedure second_proc_to_procvar;override; }
|
{ procedure second_proc_to_procvar;override; }
|
||||||
{ procedure second_bool_to_int;override; }
|
{ procedure second_bool_to_int;override; }
|
||||||
@ -207,32 +207,6 @@ begin
|
|||||||
end;
|
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;
|
procedure tMIPSELtypeconvnode.second_int_to_bool;
|
||||||
var
|
var
|
||||||
hreg1, hreg2: tregister;
|
hreg1, hreg2: tregister;
|
||||||
|
Loading…
Reference in New Issue
Block a user