ppc32-linux only: redirect strcmp right from the start.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4841 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_trampoline.S b/coregrind/m_trampoline.S
index 2f9d46d..2d0ceb6 100644
--- a/coregrind/m_trampoline.S
+++ b/coregrind/m_trampoline.S
@@ -159,16 +159,53 @@
         lbz 4,0(3)
         li 9,0
         cmpwi 0,4,0
-        beq- 0,.L8
-.L9:
+        beq- 0,.L18
+.L19:
         lbzu 5,1(3)
         addi 9,9,1
         cmpwi 0,5,0
-        bne+ 0,.L9
-.L8:
+        bne+ 0,.L19
+.L18:
         mr 3,9
         blr
 
+/* Ditto strcmp */
+.global VG_(ppc32_linux_REDIR_FOR_strcmp)
+VG_(ppc32_linux_REDIR_FOR_strcmp):
+.L20:
+        lbz 0,0(3)
+        cmpwi 7,0,0
+        bne- 7,.L21
+        lbz 0,0(4)
+        li 11,0
+        cmpwi 7,0,0
+        beq- 7,.L22
+.L21:
+        lbz 0,0(3)
+        li 11,-1
+        cmpwi 7,0,0
+        beq- 7,.L22
+        lbz 0,0(4)
+        li 11,1
+        cmpwi 7,0,0
+        beq- 7,.L22
+        lbz 9,0(3)
+        lbz 0,0(4)
+        li 11,-1
+        cmplw 7,9,0
+        blt- 7,.L22
+        lbz 9,0(3)
+        lbz 0,0(4)
+        li 11,1
+        addi 3,3,1
+        addi 4,4,1
+        cmplw 7,9,0
+        ble+ 7,.L20
+.L22:
+        mr 3,11
+        blr
+
+
 .global VG_(trampoline_stuff_end)
 VG_(trampoline_stuff_end):