--- llvm-9999/lib/Target/PowerPC/PPCJITInfo.cpp.orig 2012-03-26 11:30:21.305679897 +0900 +++ llvm-9999/lib/Target/PowerPC/PPCJITInfo.cpp 2012-03-26 11:33:54.640880134 +0900 @@ -115,7 +115,11 @@ "lwz r2, 208(r1)\n" // stub's frame "lwz r4, 8(r2)\n" // stub's lr "li r5, 0\n" // 0 == 32 bit +#ifdef __PIC__ + "bl _PPCCompilationCallbackC@plt\n" +#else "bl _PPCCompilationCallbackC\n" +#endif "mtctr r3\n" // Restore all int arg registers "lwz r10, 204(r1)\n" "lwz r9, 200(r1)\n" @@ -178,7 +182,11 @@ "lwz 5, 104(1)\n" // stub's frame "lwz 4, 4(5)\n" // stub's lr "li 5, 0\n" // 0 == 32 bit +#ifdef __PIC__ + "bl PPCCompilationCallbackC@plt\n" +#else "bl PPCCompilationCallbackC\n" +#endif "mtctr 3\n" // Restore all int arg registers "lwz 10, 100(1)\n" "lwz 9, 96(1)\n" @@ -259,11 +267,20 @@ "ld 4, 16(5)\n" // stub's lr "li 5, 1\n" // 1 == 64 bit #ifdef __ELF__ +#ifdef __PIC__ + "bl PPCCompilationCallbackC@plt\n" + "nop\n" +#else "bl PPCCompilationCallbackC\n" "nop\n" +#endif +#else +#ifdef __PIC__ + "bl _PPCCompilationCallbackC@plt\n" #else "bl _PPCCompilationCallbackC\n" #endif +#endif "mtctr 3\n" // Restore all int arg registers "ld 10, 272(1)\n" "ld 9, 264(1)\n"