|
@@ -41,6 +41,7 @@ unit cpupara;
|
|
|
function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;override;
|
|
|
function create_varargs_paraloc_info(p : tabstractprocdef; side: tcallercallee; varargspara:tvarargsparalist):longint;override;
|
|
|
function get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override;
|
|
|
+ function get_saved_registers_int(calloption: tproccalloption): tcpuregisterarray;override;
|
|
|
function get_saved_registers_fpu(calloption: tproccalloption): tcpuregisterarray;override;
|
|
|
private
|
|
|
procedure init_values(var curintreg, curfloatreg, curmmreg: tsuperregister; var cur_stack_offset: aword);
|
|
@@ -69,11 +70,19 @@ unit cpupara;
|
|
|
end;
|
|
|
|
|
|
|
|
|
+ function tcpuparamanager.get_saved_registers_int(calloption : tproccalloption):tcpuregisterarray;
|
|
|
+ const
|
|
|
+ saved_regs: tcpuregisterarray = (RS_X2,RS_X8,RS_X9,RS_X18,RS_X19,RS_X20,RS_X21,RS_X22,RS_X23,RS_X24,RS_X26,RS_X26,RS_X27);
|
|
|
+ begin
|
|
|
+ result:=saved_regs;
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
function tcpuparamanager.get_saved_registers_fpu(calloption : tproccalloption):tcpuregisterarray;
|
|
|
const
|
|
|
- inv: tcpuregisterarray = (RS_F8,RS_F9,RS_F18,RS_F19,RS_F20,RS_F21,RS_F22,RS_F23,RS_F24,RS_F25,RS_F26,RS_F27);
|
|
|
+ saved_regs: tcpuregisterarray = (RS_F8,RS_F9,RS_F18,RS_F19,RS_F20,RS_F21,RS_F22,RS_F23,RS_F24,RS_F25,RS_F26,RS_F27);
|
|
|
begin
|
|
|
- result:=inv;
|
|
|
+ result:=saved_regs;
|
|
|
end;
|
|
|
|
|
|
|