From 16d56c51aded374730920a4acde76ff3d2860ae1 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 18 Nov 2013 06:36:03 -0500 Subject: [PATCH] An #endif in the wrong place would cause compile failure on powerpcle. Using bl instead of b doesn't cause runtime failures as you might think, but does mess the processor branch prediction. --- ChangeLog | 5 +++++ src/powerpc/ppc_closure.S | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 08c1dd82..3c5854c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-11-16 Alan Modra + + * src/powerpc/ppc_closure.S: Move errant #endif to where it belongs. + Don't bl .Luint128. + 2013-11-16 Alan Modra * src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF diff --git a/src/powerpc/ppc_closure.S b/src/powerpc/ppc_closure.S index 3eefe7e7..1f723400 100644 --- a/src/powerpc/ppc_closure.S +++ b/src/powerpc/ppc_closure.S @@ -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)