mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 05:08:06 +02:00
* MIPS: floating point parameters on stack should be loaded to/from FPU registers directly, without using temp.
git-svn-id: trunk@25122 -
This commit is contained in:
parent
3e0cc1e5f6
commit
c3350d13f9
@ -439,7 +439,10 @@ implementation
|
||||
intparareg:=mips_nb_used_registers;
|
||||
end;
|
||||
paraloc^.loc:=LOC_REFERENCE;
|
||||
paraloc^.size:=int_cgsize(paralen);
|
||||
if (paradef.typ=floatdef) then
|
||||
paraloc^.size:=int_float_cgsize(paralen)
|
||||
else
|
||||
paraloc^.size:=int_cgsize(paralen);
|
||||
paraloc^.def:=get_paraloc_def(locdef,paralen,firstparaloc);
|
||||
|
||||
if side=callerside then
|
||||
|
@ -1058,11 +1058,11 @@ implementation
|
||||
begin
|
||||
{$ifdef mips}
|
||||
if (destloc.size = paraloc^.Size) and
|
||||
(paraloc^.Loc in [LOC_FPUREGISTER,LOC_CFPUREGISTER]) then
|
||||
(paraloc^.Loc in [LOC_FPUREGISTER,LOC_CFPUREGISTER,LOC_REFERENCE,LOC_CREFERENCE]) then
|
||||
begin
|
||||
unget_para(paraloc^);
|
||||
gen_alloc_regloc(list,destloc);
|
||||
cg.a_loadfpu_reg_reg(list,paraloc^.Size, destloc.size, paraloc^.register, destloc.register);
|
||||
cg.a_load_cgparaloc_anyreg(list,destloc.size,paraloc^,destloc.register,para.alignment);
|
||||
end
|
||||
else if (destloc.size = OS_F32) and
|
||||
(paraloc^.Loc in [LOC_REGISTER,LOC_CREGISTER]) then
|
||||
|
Loading…
Reference in New Issue
Block a user