Revert e4c69005dea6 to see if OS X Bm goes green.

--HG--
extra : rebase_source : 7a98d5a9472af1c9085c1fbb9ab210649799a9b9
This commit is contained in:
Rafael Ávila de Espíndola 2011-09-07 18:20:55 -04:00
parent 446a63d453
commit 843c75a071
2 changed files with 17 additions and 3 deletions

View File

@ -65,6 +65,22 @@ NO_PROFILE_GUIDED_OPTIMIZE = 1
endif endif
endif endif
ifeq (Darwin,$(OS_ARCH))
ifeq (86,$(findstring 86,$(OS_TEST)))
ifneq (x86_64,$(OS_TEST))
# If we compile xptcinvoke_unixish_x86.cpp with -fomit-frame-pointer
# we end up crashing on startup. This is because
# "movl %5, %%eax\n\t" /* function index */
# becomes
# mov 0x1c(%esp),%eax
# but we have modified esp.
# NOTE: MOZ_FRAMEPTR_FLAGS must be set before including config.mk
# FIXME: change the file instead of using this hack.
MOZ_FRAMEPTR_FLAGS=-fno-omit-frame-pointer
endif
endif
endif
include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/config.mk
###################################################################### ######################################################################

View File

@ -78,7 +78,6 @@ NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
PRUint32 paramCount, nsXPTCVariant* params) PRUint32 paramCount, nsXPTCVariant* params)
{ {
#ifdef __GNUC__ /* Gnu compiler. */ #ifdef __GNUC__ /* Gnu compiler. */
PRUint32 methodIndexReg = methodIndex;
PRUint32 result; PRUint32 result;
/* Each param takes at most 2, 4-byte words /* Each param takes at most 2, 4-byte words
It doesn't matter if we push too many words, and calculating the exact It doesn't matter if we push too many words, and calculating the exact
@ -166,8 +165,7 @@ NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
"=m" (saved_esp) /* %3 */ "=m" (saved_esp) /* %3 */
#endif #endif
: "g" (that), /* %4 */ : "g" (that), /* %4 */
/* Must be in a register since we modify esp in the assembly. */ "g" (methodIndex), /* %5 */
"r" (methodIndexReg), /* %5 */
"1" (paramCount), /* %6 */ "1" (paramCount), /* %6 */
"2" (params), /* %7 */ "2" (params), /* %7 */
#ifdef KEEP_STACK_16_BYTE_ALIGNED #ifdef KEEP_STACK_16_BYTE_ALIGNED