Jelajahi Sumber

PPC64: don't save TOC in pure assembler routines

Fix by Pierre

(cherry picked from commit 0fcc57fb4b7ca536b4177d19ef32da54e8ca352d)
Jonas Maebe 3 tahun lalu
induk
melakukan
076c9b06c1
1 mengubah file dengan 2 tambahan dan 1 penghapusan
  1. 2 1
      compiler/powerpc64/cgcpu.pas

+ 2 - 1
compiler/powerpc64/cgcpu.pas

@@ -1255,7 +1255,8 @@ begin
 
 
   { save current RTOC for restoration after calls if necessary }
   { save current RTOC for restoration after calls if necessary }
   if (pi_do_call in current_procinfo.flags) and
   if (pi_do_call in current_procinfo.flags) and
-     (target_info.abi in abis_ppc_toc) then
+     (target_info.abi in abis_ppc_toc) and
+     not nostackframe then
     begin
     begin
       reference_reset_base(href,NR_STACK_POINTER_REG,get_rtoc_offset,ctempposinvalid,target_info.stackalign,[]);
       reference_reset_base(href,NR_STACK_POINTER_REG,get_rtoc_offset,ctempposinvalid,target_info.stackalign,[]);
       a_load_reg_ref(list,OS_ADDR,OS_ADDR,NR_RTOC,href);
       a_load_reg_ref(list,OS_ADDR,OS_ADDR,NR_RTOC,href);