bug 1272498 - avoid clang's integrated assembler in the hope clang won't preprocess xptcinvoke_asm_x86_64_unix.s r=me landed on a CLOSED TREE
☠☠ backed out by c66bd05c9f55 ☠ ☠
authorTrevor Saunders <tbsaunde@tbsaunde.org>
Wed, 24 Aug 2016 11:18:02 -0400
changeset 310993 f517b043170be2894efe648ca6247d05cdfc4f67
parent 310992 df48165b6b642bb6475b0af73c4aa7ba90b485d9
child 310994 21cd933e4c32611231d17b7c3c399ed275858080
push id81010
push usertsaunders@mozilla.com
push dateWed, 24 Aug 2016 15:15:58 +0000
treeherdermozilla-inbound@f517b043170b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersme
bugs1272498
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
bug 1272498 - avoid clang's integrated assembler in the hope clang won't preprocess xptcinvoke_asm_x86_64_unix.s r=me landed on a CLOSED TREE Also change if to If just to be careful.
xpcom/reflect/xptcall/md/unix/moz.build
xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_64_unix.s
--- a/xpcom/reflect/xptcall/md/unix/moz.build
+++ b/xpcom/reflect/xptcall/md/unix/moz.build
@@ -15,16 +15,20 @@ if CONFIG['OS_ARCH'] == 'Darwin':
             'xptcinvoke_asm_ppc_rhapsody.s',
         ]
     if CONFIG['OS_TEST'] == 'x86_64':
         SOURCES += [
             'xptcinvoke_asm_x86_64_unix.s',
         ]
     if '86' in CONFIG['OS_TEST'] and CONFIG['OS_TEST'] != 'x86_64':
         DEFINES['MOZ_NEED_LEADING_UNDERSCORE'] = True
+    if CONFIG['CLANG_CXX']:
+        ASFLAGS += [
+            '-no-integrated-as',
+        ]
 
 if CONFIG['OS_ARCH'] == 'GNU':
     if CONFIG['CPU_ARCH'] == 'x86':
         SOURCES += [
             'xptcinvoke_gcc_x86_unix.cpp',
             'xptcstubs_gcc_x86_unix.cpp'
         ]
 
--- a/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_64_unix.s
+++ b/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_64_unix.s
@@ -25,17 +25,17 @@ NS_InvokeByIndex:
 
 # allocate space for stack arguments, in theory we only need 8 * (argc - 5)
 # bytes because at least 5 arguments will go in registers, but for now it is
 # just simpler to allocate 8 * (argc - 1) bytes.  Note that we treat the this
 # pointer specially.
   lea eax, [edx * 8]
   sub rsp, rax
 
-# if there is an odd number of args the stack can be misaligned so realign it.
+# If there is an odd number of args the stack can be misaligned so realign it.
   and rsp, 0xffffffffffffff00
 
 # pass the stack slot area to InvokeCopyToStack.
   mov r8, rsp
 
 # setup space for the register slots: there are 5 integer ones and 8 floating
 # point ones.  So we need 104 bytes of space, but we allocate 112 to keep rsp
 # aligned to 16 bytes.