[JAEGER] Merge fallout: move static asserts that break with rval private
authorDavid Mandelin <dmandelin@mozilla.com>
Mon, 16 Aug 2010 16:23:05 -0700
changeset 53442 7a050a0d1f43aba33647bdbafb211832eadf50a4
parent 53441 3f3da50b484acb4d8da911346514b2aa89342de0
child 53443 88150a1222bc9d922967a5b37ec19d214e10e702
child 53453 47a8030f7a2626f0eb151e2fc0cfef737ea7d106
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone2.0b4pre
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
[JAEGER] Merge fallout: move static asserts that break with rval private
accessible/tests/mochitest/events.js
js/src/jsinterp.h
js/src/methodjit/MethodJIT.cpp
--- a/accessible/tests/mochitest/events.js
+++ b/accessible/tests/mochitest/events.js
@@ -263,17 +263,17 @@ function eventQueue(aEventType)
       return;
     }
 
     // Start processing of next invoker.
     invoker = this.getNextInvoker();
 
     this.setEventHandler(invoker);
 
-    if (gA11yEventDumpToConsole)
+    if (true || gA11yEventDumpToConsole)
       dump("\nEvent queue: \n  invoke: " + invoker.getID() + "\n");
 
     if (invoker.invoke() == INVOKER_ACTION_FAILED) {
       // Invoker failed to prepare action, fail and finish tests.
       this.processNextInvoker();
       return;
     }
 
--- a/js/src/jsinterp.h
+++ b/js/src/jsinterp.h
@@ -529,16 +529,25 @@ static const size_t VALUES_PER_STACK_FRA
 
 } /* namespace js */
 
 inline void
 JSStackFrame::staticAsserts()
 {
     JS_STATIC_ASSERT(offsetof(JSStackFrame, rval) % sizeof(js::Value) == 0);
     JS_STATIC_ASSERT(offsetof(JSStackFrame, thisv) % sizeof(js::Value) == 0);
+    
+    /* Static assert for x86 trampolines in MethodJIT.cpp */
+#if defined(JS_METHODJIT)
+# if defined(JS_CPU_X86)
+    JS_STATIC_ASSERT(offsetof(JSStackFrame, rval) == 0x28);
+# elif defined(JS_CPU_X64)
+    JS_STATIC_ASSERT(offsetof(JSStackFrame, rval) == 0x40);
+# endif
+#endif
 }
 
 static JS_INLINE uintN
 GlobalVarCount(JSStackFrame *fp)
 {
     JS_ASSERT(!fp->hasFunction());
     return fp->getScript()->nfixed;
 }
--- a/js/src/methodjit/MethodJIT.cpp
+++ b/js/src/methodjit/MethodJIT.cpp
@@ -199,17 +199,16 @@ SYMBOL_STRING(JaegerThrowpoline) ":"    
     "popq %r14"                             "\n"
     "popq %r13"                             "\n"
     "popq %r12"                             "\n"
     "popq %rbp"                             "\n"
     "xorq %rax,%rax"                        "\n"
     "ret"                                   "\n"
 );
 
-JS_STATIC_ASSERT(offsetof(JSStackFrame, rval) == 0x40);
 JS_STATIC_ASSERT(offsetof(JSStackFrame, ncode) == 0x60);
 JS_STATIC_ASSERT(offsetof(VMFrame, fp) == 0x38);
 
 JS_STATIC_ASSERT(JSVAL_TAG_MASK == 0xFFFF800000000000LL);
 JS_STATIC_ASSERT(JSVAL_PAYLOAD_MASK == 0x00007FFFFFFFFFFFLL);
 
 asm volatile (
 ".text\n"
@@ -308,17 +307,16 @@ SYMBOL_STRING(JaegerThrowpoline) ":"    
     "popl %ebx"                          "\n"
     "popl %edi"                          "\n"
     "popl %esi"                          "\n"
     "popl %ebp"                          "\n"
     "xorl %eax, %eax"                    "\n"
     "ret"                                "\n"
 );
 
-JS_STATIC_ASSERT(offsetof(JSStackFrame, rval) == 0x28);
 JS_STATIC_ASSERT(offsetof(JSStackFrame, ncode) == 0x3C);
 JS_STATIC_ASSERT(offsetof(VMFrame, fp) == 0x1C);
 
 asm volatile (
 ".text\n"
 ".globl " SYMBOL_STRING(JaegerFromTracer)   "\n"
 SYMBOL_STRING(JaegerFromTracer) ":"         "\n"
     "movl 0x28(%ebx), %edx"                 "\n" /* fp->rval data */