Changeset 157588 in webkit
- Timestamp:
- Oct 17, 2013, 12:22:27 PM (12 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/Source/JavaScriptCore/ChangeLog ¶
r157586 r157588 1 2013-10-17 Mark Lam <mark.lam@apple.com> 2 3 Eliminate all ASSERT references to OBJECT_OFFSETOF(struct JITStackFrame,...) in JITStubsXXX.h. 4 https://bugs.webkit.org/show_bug.cgi?id=122979. 5 6 Reviewed by Michael Saboff. 7 8 * jit/JITStubs.cpp: 9 * jit/JITStubs.h: 10 * jit/JITStubsARM.h: 11 * jit/JITStubsARM64.h: 12 * jit/JITStubsARMv7.h: 13 * jit/JITStubsMIPS.h: 14 * jit/JITStubsSH4.h: 15 * jit/JITStubsX86.h: 16 * jit/JITStubsX86_64.h: 17 * runtime/VM.cpp: 18 (JSC::VM::VM): 19 1 20 2013-10-17 Michael Saboff <msaboff@apple.com> 2 21 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubs.cpp ¶
r157581 r157588 110 110 #endif 111 111 112 void performPlatformSpecificJITAssertions(VM* vm)113 {114 if (!vm->canUseJIT())115 return;116 117 #if CPU(ARM_THUMB2)118 performARMv7JITAssertions();119 #elif CPU(ARM64)120 performARM64JITAssertions();121 #elif CPU(ARM_TRADITIONAL)122 performARMJITAssertions();123 #elif CPU(MIPS)124 performMIPSJITAssertions();125 #elif CPU(SH4)126 performSH4JITAssertions();127 #endif128 }129 130 112 #if USE(JSVALUE32_64) 131 113 EncodedExceptionHandler JIT_STUB cti_vm_handle_exception(CallFrame* callFrame) -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubs.h ¶
r157581 r157588 352 352 #endif 353 353 354 void performPlatformSpecificJITAssertions(VM*);355 356 354 extern "C" { 357 355 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsARM.h ¶
r157581 r157588 477 477 #endif // COMPILER(MSVC) 478 478 479 480 static void performARMJITAssertions()481 {482 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);483 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR4) == PRESERVEDR4_OFFSET);484 }485 486 479 } // namespace JSC 487 480 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsARM64.h ¶
r157581 r157588 149 149 #endif // COMPILER(GCC) 150 150 151 static void performARM64JITAssertions()152 {153 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);154 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET);155 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX19) == PRESERVED_X19_OFFSET);156 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX20) == PRESERVED_X20_OFFSET);157 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX21) == PRESERVED_X21_OFFSET);158 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX22) == PRESERVED_X22_OFFSET);159 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX23) == PRESERVED_X23_OFFSET);160 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX24) == PRESERVED_X24_OFFSET);161 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX25) == PRESERVED_X25_OFFSET);162 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX26) == PRESERVED_X26_OFFSET);163 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX27) == PRESERVED_X27_OFFSET);164 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedX28) == PRESERVED_X28_OFFSET);165 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, stack) == REGISTER_FILE_OFFSET);166 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, callFrame) == CALLFRAME_OFFSET);167 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, enabledProfilerReference) == PROFILER_REFERENCE_OFFSET);168 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, vm) == VM_OFFSET);169 ASSERT(sizeof(struct JITStackFrame) == SIZEOF_JITSTACKFRAME);170 }171 172 151 } // namespace JSC 173 152 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsARMv7.h ¶
r157581 r157588 535 535 #endif // COMPILER(RVCT) 536 536 537 538 static void performARMv7JITAssertions()539 {540 // Unfortunate the arm compiler does not like the use of offsetof on JITStackFrame (since it contains non POD types),541 // and the OBJECT_OFFSETOF macro does not appear constantish enough for it to be happy with its use in COMPILE_ASSERT542 // macros.543 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET);544 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR4) == PRESERVED_R4_OFFSET);545 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR5) == PRESERVED_R5_OFFSET);546 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR6) == PRESERVED_R6_OFFSET);547 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR7) == PRESERVED_R7_OFFSET);548 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR8) == PRESERVED_R8_OFFSET);549 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR9) == PRESERVED_R9_OFFSET);550 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR10) == PRESERVED_R10_OFFSET);551 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedR11) == PRESERVED_R11_OFFSET);552 553 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, stack) == REGISTER_FILE_OFFSET);554 // The fifth argument is the first item already on the stack.555 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, unused1) == FIRST_STACK_ARGUMENT);556 557 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);558 }559 560 537 } // namespace JSC 561 538 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsMIPS.h ¶
r157581 r157588 207 207 #endif // WTF_MIPS_PIC 208 208 209 210 static void performMIPSJITAssertions()211 {212 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedGP) == PRESERVED_GP_OFFSET);213 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS0) == PRESERVED_S0_OFFSET);214 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS1) == PRESERVED_S1_OFFSET);215 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedS2) == PRESERVED_S2_OFFSET);216 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, preservedReturnAddress) == PRESERVED_RETURN_ADDRESS_OFFSET);217 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);218 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, stack) == REGISTER_FILE_OFFSET);219 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, vm) == VM_OFFSET);220 }221 222 209 } // namespace JSC 223 210 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsSH4.h ¶
r157581 r157588 142 142 rtype JITStubThunked_##op(STUB_ARGS_DECLARATION) 143 143 144 static void performSH4JITAssertions()145 {146 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET);147 ASSERT(OBJECT_OFFSETOF(struct JITStackFrame, savedR8) == SAVED_R8_OFFSET);148 }149 150 144 } // namespace JSC 151 145 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsX86.h ¶
r157581 r157588 46 46 #if COMPILER(GCC) 47 47 48 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you49 // need to change the assembly trampolines below to match.50 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);51 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);52 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);53 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);54 55 48 asm ( 56 49 ".text\n" … … 256 249 #if COMPILER(MSVC) 257 250 258 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you259 // need to change the assembly trampolines below to match.260 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);261 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x3c, JITStackFrame_stub_argument_space_matches_ctiTrampoline);262 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);263 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x50, JITStackFrame_code_offset_matches_ctiTrampoline);264 265 251 extern "C" { 266 252 -
TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsX86_64.h ¶
r157581 r157588 45 45 46 46 #if COMPILER(GCC) 47 48 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you49 // need to change the assembly trampolines below to match.50 COMPILE_ASSERT(offsetof(struct JITStackFrame, callFrame) == 0x58, JITStackFrame_callFrame_offset_matches_ctiTrampoline);51 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) == 0x48, JITStackFrame_code_offset_matches_ctiTrampoline);52 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x78, JITStackFrame_stub_argument_space_matches_ctiTrampoline);53 47 54 48 asm ( … … 282 276 #endif // COMPILER(GCC) 283 277 284 #if COMPILER(MSVC)285 286 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you287 // need to change the assembly trampolines in JITStubsMSVC64.asm to match.288 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment);289 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x58, JITStackFrame_stub_argument_space_matches_ctiTrampoline);290 291 #endif // COMPILER(MSVC)292 293 278 } // namespace JSC 294 279 -
TabularUnified trunk/Source/JavaScriptCore/runtime/VM.cpp ¶
r157420 r157588 254 254 #if ENABLE(JIT) 255 255 jitStubs = adoptPtr(new JITThunks()); 256 performPlatformSpecificJITAssertions(this);257 256 #endif 258 257
Note:
See TracChangeset
for help on using the changeset viewer.