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.
This commit is contained in:
committed by
Anthony Green
parent
34f878a5ef
commit
16d56c51ad
@@ -1,3 +1,8 @@
|
|||||||
|
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>
|
2013-11-16 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
|
* src/powerpc/ffi.c (ffi_prep_cif_machdep_core): Use #if _CALL_ELF
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ ENTRY(ffi_closure_SYSV)
|
|||||||
lwz %r3,112+0(%r1)
|
lwz %r3,112+0(%r1)
|
||||||
lwz %r4,112+4(%r1)
|
lwz %r4,112+4(%r1)
|
||||||
lwz %r5,112+8(%r1)
|
lwz %r5,112+8(%r1)
|
||||||
bl .Luint128
|
b .Luint128
|
||||||
|
|
||||||
# The return types below are only used when the ABI type is FFI_SYSV.
|
# The return types below are only used when the ABI type is FFI_SYSV.
|
||||||
# case FFI_SYSV_TYPE_SMALL_STRUCT + 1. One byte struct.
|
# case FFI_SYSV_TYPE_SMALL_STRUCT + 1. One byte struct.
|
||||||
@@ -320,13 +320,13 @@ ENTRY(ffi_closure_SYSV)
|
|||||||
mtlr %r0
|
mtlr %r0
|
||||||
addi %r1,%r1,144
|
addi %r1,%r1,144
|
||||||
blr
|
blr
|
||||||
|
#endif
|
||||||
|
|
||||||
.Luint128:
|
.Luint128:
|
||||||
lwz %r6,112+12(%r1)
|
lwz %r6,112+12(%r1)
|
||||||
mtlr %r0
|
mtlr %r0
|
||||||
addi %r1,%r1,144
|
addi %r1,%r1,144
|
||||||
blr
|
blr
|
||||||
#endif
|
|
||||||
|
|
||||||
END(ffi_closure_SYSV)
|
END(ffi_closure_SYSV)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user