diff options
Diffstat (limited to 'compiler/i386/cgcpu.pas')
-rw-r--r-- | compiler/i386/cgcpu.pas | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/i386/cgcpu.pas b/compiler/i386/cgcpu.pas index 21e715860c..de73fc0b05 100644 --- a/compiler/i386/cgcpu.pas +++ b/compiler/i386/cgcpu.pas @@ -314,6 +314,13 @@ unit cgcpu; end; 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 } if assigned(rg[R_MMXREGISTER]) and (rg[R_MMXREGISTER].uses_registers) then |