Disable tail call optimization and use -mstackrealign to boot up on fugu.
http://llvm.org/bugs/show_bug.cgi?id=15086, llvm tail call optimization is wrong for x86. For Android/x86 to use SSE* instructions safely, stack should be 16-byte aligned before JNI function call, which isn't true for all x86 device, so -mstackrealign should be the default. BUG: 19234330 Change-Id: I4c6676366788772dbe64fd7f0dd33b3ed5c9b80e
This commit is contained in:
parent
4eec22a662
commit
73e734bea5
|
@ -18,7 +18,15 @@ CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS := \
|
|||
$(CLANG_CONFIG_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_TARGET_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_EXTRA_CFLAGS) \
|
||||
$(CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS)
|
||||
$(CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS) \
|
||||
-fno-optimize-sibling-calls \
|
||||
-mstackrealign
|
||||
|
||||
# http://llvm.org/bugs/show_bug.cgi?id=15086,
|
||||
# llvm tail call optimization is wrong for x86.
|
||||
# -mstackrealign is needed to realign stack in native code
|
||||
# that could be called from JNI, so that movaps instruction
|
||||
# will work on assumed stack aligned local variables.
|
||||
|
||||
CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS := \
|
||||
$(CLANG_CONFIG_EXTRA_CONLYFLAGS) \
|
||||
|
|
Loading…
Reference in New Issue