mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 09:26:15 +02:00
- moved deallocation of NR_PIC_OFFSET_REG from the x86_64 to the i386 code
generator (as it's also allocated for i386 rather than for x86_64) git-svn-id: trunk@28928 -
This commit is contained in:
parent
af7876b93c
commit
8244d366d0
@ -314,6 +314,13 @@ unit cgcpu;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
{ Release PIC register }
|
||||||
|
if (cs_create_pic in current_settings.moduleswitches) and
|
||||||
|
(tf_pic_uses_got in target_info.flags) and
|
||||||
|
(pi_needs_got in current_procinfo.flags) and
|
||||||
|
not(target_info.system in systems_darwin) then
|
||||||
|
list.concat(tai_regalloc.dealloc(NR_PIC_OFFSET_REG,nil));
|
||||||
|
|
||||||
{ MMX needs to call EMMS }
|
{ MMX needs to call EMMS }
|
||||||
if assigned(rg[R_MMXREGISTER]) and
|
if assigned(rg[R_MMXREGISTER]) and
|
||||||
(rg[R_MMXREGISTER].uses_registers) then
|
(rg[R_MMXREGISTER].uses_registers) then
|
||||||
|
@ -330,10 +330,6 @@ unit cgcpu;
|
|||||||
hreg : tregister;
|
hreg : tregister;
|
||||||
r : longint;
|
r : longint;
|
||||||
begin
|
begin
|
||||||
{ Release PIC register }
|
|
||||||
if cs_create_pic in current_settings.moduleswitches then
|
|
||||||
list.concat(tai_regalloc.dealloc(NR_PIC_OFFSET_REG,nil));
|
|
||||||
|
|
||||||
{ Prevent return address from a possible call from ending up in the epilogue }
|
{ Prevent return address from a possible call from ending up in the epilogue }
|
||||||
{ (restoring registers happens before epilogue, providing necessary padding) }
|
{ (restoring registers happens before epilogue, providing necessary padding) }
|
||||||
if (current_procinfo.flags*[pi_has_unwind_info,pi_do_call,pi_has_saved_regs])=[pi_has_unwind_info,pi_do_call] then
|
if (current_procinfo.flags*[pi_has_unwind_info,pi_do_call,pi_has_saved_regs])=[pi_has_unwind_info,pi_do_call] then
|
||||||
|
Loading…
Reference in New Issue
Block a user