]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Partially merge r1519 (only allocate from callee-save FP and VMX regs).
authorJulian Seward <jseward@acm.org>
Fri, 24 Feb 2006 00:14:29 +0000 (00:14 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 24 Feb 2006 00:14:29 +0000 (00:14 +0000)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH@1578

VEX/priv/host-ppc32/hdefs.c

index 9ffe1df111678dd902d48ab3728814680a94185e..7fb459f4317221a3c58ff2fd8bb0e4eb7ad700b1 100644 (file)
@@ -227,14 +227,16 @@ void getAllocableRegs_PPC32 ( Int* nregs, HReg** arr )
    // GPR30 AltiVec spill reg temporary
    // GPR31 = GuestStatePtr
 
-   (*arr)[i++] = hregPPC32_FPR0();
-   (*arr)[i++] = hregPPC32_FPR1();
-   (*arr)[i++] = hregPPC32_FPR2();
-   (*arr)[i++] = hregPPC32_FPR3();
-   (*arr)[i++] = hregPPC32_FPR4();
-   (*arr)[i++] = hregPPC32_FPR5();
-   (*arr)[i++] = hregPPC32_FPR6();
-   (*arr)[i++] = hregPPC32_FPR7();
+   /* For both ppc32-linux and ppc64-linux, f14-f31 are callee save.
+      So use them. */
+   (*arr)[i++] = hregPPC32_FPR14();
+   (*arr)[i++] = hregPPC32_FPR15();
+   (*arr)[i++] = hregPPC32_FPR16();
+   (*arr)[i++] = hregPPC32_FPR17();
+   (*arr)[i++] = hregPPC32_FPR18();
+   (*arr)[i++] = hregPPC32_FPR19();
+   (*arr)[i++] = hregPPC32_FPR20();
+   (*arr)[i++] = hregPPC32_FPR21();
 /*
    (*arr)[i++] = hregPPC32_FPR8();
    (*arr)[i++] = hregPPC32_FPR9();
@@ -261,14 +263,16 @@ void getAllocableRegs_PPC32 ( Int* nregs, HReg** arr )
    (*arr)[i++] = hregPPC32_FPR30();
    (*arr)[i++] = hregPPC32_FPR31();
 */
-   (*arr)[i++] = hregPPC32_VR0();
-   (*arr)[i++] = hregPPC32_VR1();
-   (*arr)[i++] = hregPPC32_VR2();
-   (*arr)[i++] = hregPPC32_VR3();
-   (*arr)[i++] = hregPPC32_VR4();
-   (*arr)[i++] = hregPPC32_VR5();
-   (*arr)[i++] = hregPPC32_VR6();
-   (*arr)[i++] = hregPPC32_VR7();
+   /* For both ppc32-linux and ppc64-linux, v20-v31 are callee-save.
+      So use them. */
+   (*arr)[i++] = hregPPC32_VR20();
+   (*arr)[i++] = hregPPC32_VR21();
+   (*arr)[i++] = hregPPC32_VR22();
+   (*arr)[i++] = hregPPC32_VR23();
+   (*arr)[i++] = hregPPC32_VR24();
+   (*arr)[i++] = hregPPC32_VR25();
+   (*arr)[i++] = hregPPC32_VR26();
+   (*arr)[i++] = hregPPC32_VR27();
 /*
    (*arr)[i++] = hregPPC32_VR8();
    (*arr)[i++] = hregPPC32_VR9();