Procházet zdrojové kódy

* do not use R13 as available register because it is reserved for tls on ppc64/linux

git-svn-id: trunk@7266 -
tom_at_work před 18 roky
rodič
revize
a42d80dbf9
1 změnil soubory, kde provedl 2 přidání a 1 odebrání
  1. 2 1
      compiler/powerpc64/cgcpu.pas

+ 2 - 1
compiler/powerpc64/cgcpu.pas

@@ -395,12 +395,13 @@ procedure tcgppc.init_register_allocators;
 begin
   inherited init_register_allocators;
   if (target_info.system <> system_powerpc64_darwin) then
+    // r13 is tls, do not use, r2 is not available
     rg[R_INTREGISTER] := trgintcpu.create(R_INTREGISTER, R_SUBWHOLE,
       [{$ifdef user0} RS_R0, {$endif} RS_R3, RS_R4, RS_R5, RS_R6, RS_R7, RS_R8,
        RS_R9, RS_R10, RS_R11, RS_R12, RS_R31, RS_R30, RS_R29,
        RS_R28, RS_R27, RS_R26, RS_R25, RS_R24, RS_R23, RS_R22,
        RS_R21, RS_R20, RS_R19, RS_R18, RS_R17, RS_R16, RS_R15,
-       RS_R14, RS_R13], first_int_imreg, [])
+       RS_R14], first_int_imreg, [])
   else
     { special for darwin/ppc64: r2 available volatile, r13 = tls }
     rg[R_INTREGISTER] := trgintcpu.create(R_INTREGISTER, R_SUBWHOLE,