An #endif in the wrong place would cause compile failure on powerpcle.
authorAlan Modra <amodra@gmail.com>
Mon, 18 Nov 2013 11:36:03 +0000 (06:36 -0500)
committerAnthony Green <green@moxielogic.com>
Mon, 18 Nov 2013 11:36:03 +0000 (06:36 -0500)
Using bl instead of b doesn't cause runtime failures as you might think,
but does mess the processor branch prediction.

ChangeLog
src/powerpc/ppc_closure.S

index 08c1dd8..3c5854c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2013-11-16  Alan Modra  <amodra@gmail.com>
 
+       * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs.
+       Don't bl .Luint128.
+
+2013-11-16  Alan Modra  <amodra@gmail.com>
+
        * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
        test to select parameter save sizing for ELFv2 vs. ELFv1.
        * src/powerpc/ffitarget.h (FFI_V2_TYPE_FLOAT_HOMOG,
index 3eefe7e..1f72340 100644 (file)
@@ -238,7 +238,7 @@ ENTRY(ffi_closure_SYSV)
        lwz %r3,112+0(%r1)
        lwz %r4,112+4(%r1)
        lwz %r5,112+8(%r1)
-       bl .Luint128
+       b .Luint128
 
 # The return types below are only used when the ABI type is FFI_SYSV.
 # case FFI_SYSV_TYPE_SMALL_STRUCT + 1. One byte struct.
@@ -320,13 +320,13 @@ ENTRY(ffi_closure_SYSV)
        mtlr %r0
        addi %r1,%r1,144
        blr
+#endif
 
 .Luint128:
        lwz %r6,112+12(%r1)
        mtlr %r0
        addi %r1,%r1,144
        blr
-#endif
        
 END(ffi_closure_SYSV)