Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (157587 => 157588)
--- trunk/Source/_javascript_Core/ChangeLog 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-10-17 19:22:27 UTC (rev 157588)
@@ -1,3 +1,22 @@
+2013-10-17 Mark Lam <[email protected]>
+
+ Eliminate all ASSERT references to OBJECT_OFFSETOF(struct JITStackFrame,...) in JITStubsXXX.h.
+ https://bugs.webkit.org/show_bug.cgi?id=122979.
+
+ Reviewed by Michael Saboff.
+
+ * jit/JITStubs.cpp:
+ * jit/JITStubs.h:
+ * jit/JITStubsARM.h:
+ * jit/JITStubsARM64.h:
+ * jit/JITStubsARMv7.h:
+ * jit/JITStubsMIPS.h:
+ * jit/JITStubsSH4.h:
+ * jit/JITStubsX86.h:
+ * jit/JITStubsX86_64.h:
+ * runtime/VM.cpp:
+ (JSC::VM::VM):
+
2013-10-17 Michael Saboff <[email protected]>
Remove saving callFrameRegister to JITStackFrame in JITCompiler::compileFunction()
Modified: trunk/Source/_javascript_Core/jit/JITStubs.cpp (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubs.cpp 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubs.cpp 2013-10-17 19:22:27 UTC (rev 157588)
@@ -109,24 +109,6 @@
#define CTI_SAMPLER 0
#endif
-void performPlatformSpecificJITAssertions(VM* vm)
-{
- if (!vm->canUseJIT())
- return;
-
-#if CPU(ARM_THUMB2)
- performARMv7JITAssertions();
-#elif CPU(ARM64)
- performARM64JITAssertions();
-#elif CPU(ARM_TRADITIONAL)
- performARMJITAssertions();
-#elif CPU(MIPS)
- performMIPSJITAssertions();
-#elif CPU(SH4)
- performSH4JITAssertions();
-#endif
-}
-
#if USE(JSVALUE32_64)
EncodedExceptionHandler JIT_STUB cti_vm_handle_exception(CallFrame* callFrame)
{
Modified: trunk/Source/_javascript_Core/jit/JITStubs.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubs.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubs.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -351,8 +351,6 @@
extern "C" void ctiMasmProbeTrampoline();
#endif
-void performPlatformSpecificJITAssertions(VM*);
-
extern "C" {
#if USE(JSVALUE32_64)
Modified: trunk/Source/_javascript_Core/jit/JITStubsARM.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsARM.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsARM.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -476,13 +476,6 @@
*/
#endif // COMPILER(MSVC)
-
-static void performARMJITAssertions()
-{
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR4) == PRESERVEDR4_OFFSET);
-}
-
} // namespace JSC
#endif // JITStubsARM_h
Modified: trunk/Source/_javascript_Core/jit/JITStubsARM64.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsARM64.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsARM64.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -148,27 +148,6 @@
#endif // COMPILER(GCC)
-static void performARM64JITAssertions()
-{
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX19) == PRESERVED_X19_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX20) == PRESERVED_X20_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX21) == PRESERVED_X21_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX22) == PRESERVED_X22_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX23) == PRESERVED_X23_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX24) == PRESERVED_X24_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX25) == PRESERVED_X25_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX26) == PRESERVED_X26_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX27) == PRESERVED_X27_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX28) == PRESERVED_X28_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, stack) == REGISTER_FILE_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, callFrame) == CALLFRAME_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, enabledProfilerReference) == PROFILER_REFERENCE_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, vm) == VM_OFFSET);
- ASSERT(sizeof(struct JITStackFrame) == SIZEOF_JITSTACKFRAME);
-}
-
} // namespace JSC
#endif // JITStubsARM64_h
Modified: trunk/Source/_javascript_Core/jit/JITStubsARMv7.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsARMv7.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsARMv7.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -534,29 +534,6 @@
#endif // COMPILER(RVCT)
-
-static void performARMv7JITAssertions()
-{
- // Unfortunate the arm compiler does not like the use of offsetof on JITStackFrame (since it contains non POD types),
- // and the OBJECT_OFFSETOF macro does not appear constantish enough for it to be happy with its use in COMPILE_ASSERT
- // macros.
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR4) == PRESERVED_R4_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR5) == PRESERVED_R5_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR6) == PRESERVED_R6_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR7) == PRESERVED_R7_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR8) == PRESERVED_R8_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR9) == PRESERVED_R9_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR10) == PRESERVED_R10_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR11) == PRESERVED_R11_OFFSET);
-
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, stack) == REGISTER_FILE_OFFSET);
- // The fifth argument is the first item already on the stack.
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, unused1) == FIRST_STACK_ARGUMENT);
-
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);
-}
-
} // namespace JSC
#endif // JITStubsARMv7_h
Modified: trunk/Source/_javascript_Core/jit/JITStubsMIPS.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsMIPS.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsMIPS.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -206,19 +206,6 @@
#endif // WTF_MIPS_PIC
-
-static void performMIPSJITAssertions()
-{
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedGP) == PRESERVED_GP_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS0) == PRESERVED_S0_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS1) == PRESERVED_S1_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS2) == PRESERVED_S2_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, stack) == REGISTER_FILE_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, vm) == VM_OFFSET);
-}
-
} // namespace JSC
#endif // JITStubsMIPS_h
Modified: trunk/Source/_javascript_Core/jit/JITStubsSH4.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsSH4.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsSH4.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -141,12 +141,6 @@
); \
rtype JITStubThunked_##op(STUB_ARGS_DECLARATION)
-static void performSH4JITAssertions()
-{
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);
- ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, savedR8) == SAVED_R8_OFFSET);
-}
-
} // namespace JSC
#endif // JITStubsSH4_h
Modified: trunk/Source/_javascript_Core/jit/JITStubsX86.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsX86.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsX86.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -45,13 +45,6 @@
#if COMPILER(GCC)
-// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
-// need to change the assembly trampolines below to match.
-COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
-
asm (
".text\n"
".globl " SYMBOL_STRING(ctiTrampoline) "\n"
@@ -255,13 +248,6 @@
#if COMPILER(MSVC)
-// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
-// need to change the assembly trampolines below to match.
-COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);
-
extern "C" {
__declspec(naked) EncodedJSValue ctiTrampoline(void* code, JSStack*, CallFrame*, void* /*unused1*/, void* /*unused2*/, VM*)
Modified: trunk/Source/_javascript_Core/jit/JITStubsX86_64.h (157587 => 157588)
--- trunk/Source/_javascript_Core/jit/JITStubsX86_64.h 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/jit/JITStubsX86_64.h 2013-10-17 19:22:27 UTC (rev 157588)
@@ -45,12 +45,6 @@
#if COMPILER(GCC)
-// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
-// need to change the assembly trampolines below to match.
-COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
-
asm (
".text\n"
".globl " SYMBOL_STRING(ctiTrampoline) "\n"
@@ -281,15 +275,6 @@
#endif // COMPILER(GCC)
-#if COMPILER(MSVC)
-
-// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
-// need to change the assembly trampolines in JITStubsMSVC64.asm to match.
-COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);
-COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x58, JITStackFrame_stub_argument_space_matches_ctiTrampoline);
-
-#endif // COMPILER(MSVC)
-
} // namespace JSC
#endif // JITStubsX86_64_h
Modified: trunk/Source/_javascript_Core/runtime/VM.cpp (157587 => 157588)
--- trunk/Source/_javascript_Core/runtime/VM.cpp 2013-10-17 19:15:20 UTC (rev 157587)
+++ trunk/Source/_javascript_Core/runtime/VM.cpp 2013-10-17 19:22:27 UTC (rev 157588)
@@ -253,7 +253,6 @@
#if ENABLE(JIT)
jitStubs = adoptPtr(new JITThunks());
- performPlatformSpecificJITAssertions(this);
#endif
#if ENABLE(FTL_JIT)