mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 07:28:26 +02:00
* MIPS: fixed cgsize2subreg to return correct result for float registers.
- TCGMIPS.getfpuregister override is no longer necessary with the above fix. git-svn-id: trunk@24893 -
This commit is contained in:
parent
b6bfa864d4
commit
7e0ae2e984
@ -39,7 +39,6 @@ type
|
||||
|
||||
procedure init_register_allocators; override;
|
||||
procedure done_register_allocators; override;
|
||||
function getfpuregister(list: tasmlist; size: Tcgsize): Tregister; override;
|
||||
/// { needed by cg64 }
|
||||
procedure make_simple_ref(list: tasmlist; var ref: treference);
|
||||
procedure handle_reg_const_reg(list: tasmlist; op: Tasmop; src: tregister; a: tcgint; dst: tregister);
|
||||
@ -445,15 +444,6 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
function TCGMIPS.getfpuregister(list: tasmlist; size: Tcgsize): Tregister;
|
||||
begin
|
||||
if size = OS_F64 then
|
||||
Result := rg[R_FPUREGISTER].getregister(list, R_SUBFD)
|
||||
else
|
||||
Result := rg[R_FPUREGISTER].getregister(list, R_SUBFS);
|
||||
end;
|
||||
|
||||
|
||||
procedure TCGMIPS.a_loadfpu_ref_cgpara(list: tasmlist; size: tcgsize; const ref: treference; const paraloc: TCGPara);
|
||||
var
|
||||
href, href2: treference;
|
||||
|
@ -296,10 +296,17 @@ unit cpubase;
|
||||
|
||||
function cgsize2subreg(regtype: tregistertype; s:tcgsize):tsubregister;
|
||||
begin
|
||||
if s in [OS_64,OS_S64] then
|
||||
cgsize2subreg:=R_SUBQ
|
||||
case regtype of
|
||||
R_FPUREGISTER:
|
||||
if s=OS_F32 then
|
||||
result:=R_SUBFS
|
||||
else if s=OS_F64 then
|
||||
result:=R_SUBFD
|
||||
else
|
||||
internalerror(2013021301);
|
||||
else
|
||||
cgsize2subreg:=R_SUBWHOLE;
|
||||
result:=R_SUBWHOLE;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user