Bug 619481 - after binutils upgrade, 'xptcinvoke_arm.cpp' fails to compile for ARM thumb2 with hardfp ABI r=Jacob.Bramley a=approval2.0
authorSiarhei Siamashka <siarhei.siamashka@gmail.com>
Thu, 20 Jan 2011 08:27:51 +0200
changeset 60919 3b6ff0e5ecffdb5b69d2d5ed8c4ffc5b417862e4
parent 60918 a32b4edf277ae93b0c228f5ad81c87e15154fa82
child 60920 efbf1fa4c70e05e658c7af2fcd580c814d670995
push id18163
push userromaxa@gmail.com
push dateThu, 20 Jan 2011 06:28:04 +0000
treeherdermozilla-central@3b6ff0e5ecff [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersJacob.Bramley, approval2.0
bugs619481
milestone2.0b10pre
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 619481 - after binutils upgrade, 'xptcinvoke_arm.cpp' fails to compile for ARM thumb2 with hardfp ABI r=Jacob.Bramley a=approval2.0
xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
--- a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
@@ -390,18 +390,19 @@ NS_InvokeByIndex(nsISupports* that, PRUi
   vtable_func func = vtable[methodIndex];
 #else /* non G++ V3 ABI */
   vtable_func func = vtable[2 + methodIndex];
 #endif
   // 'register PRUint32 result asm("r0")' could be used here, but it does not
   //  seem to be reliable in all cases: http://gcc.gnu.org/PR46164
   PRUint32 result;
   asm (
+    "mov    r3, sp\n"
     "mov    %[stack_space_size], %[param_count_plus_2], lsl #3\n"
-    "tst    sp, #4\n" /* check stack alignment */
+    "tst    r3, #4\n" /* check stack alignment */
 
     "add    %[stack_space_size], #(4 * 16)\n" /* space for VFP registers */
     "mov    r3, %[params]\n"
 
     "it     ne\n"
     "addne  %[stack_space_size], %[stack_space_size], #4\n"
     "sub    r0, sp, %[stack_space_size]\n" /* allocate space on stack */