]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
ppc64-linux _start: don't assume ._start_in_C_linux -- the function
authorJulian Seward <jseward@acm.org>
Sat, 21 Jul 2012 10:08:29 +0000 (10:08 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 21 Jul 2012 10:08:29 +0000 (10:08 +0000)
descriptor for _start_in_C_linux -- actually exists.  Instead call the
entry point directly.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12768

coregrind/m_main.c

index 33df5f30bb3a1c4a40a1e3dce31c0f84556328c1..0c4819fa36c2eea883d7181fe348769e37fd4c9c 100644 (file)
@@ -2740,7 +2740,14 @@ asm("\n"
        call _start_in_C_linux, passing it the initial SP. */
     "\tmr 3,1\n"
     "\tmr 1,16\n"
-    "\tbl ._start_in_C_linux\n"
+    "\tlis  14,   _start_in_C_linux@highest\n"
+    "\tori  14,14,_start_in_C_linux@higher\n"
+    "\tsldi 14,14,32\n"
+    "\toris 14,14,_start_in_C_linux@h\n"
+    "\tori  14,14,_start_in_C_linux@l\n"
+    "\tld 14,0(14)\n"
+    "\tmtctr 14\n"
+    "\tbctrl\n"
     "\tnop\n"
     "\ttrap\n"
 );