Changeset 157588 in webkit


Ignore:
Timestamp:
Oct 17, 2013, 12:22:27 PM (12 years ago)
Author:
mark.lam@apple.com
Message:

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):

Location:
trunk/Source/JavaScriptCore
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/Source/JavaScriptCore/ChangeLog

    r157586 r157588  
     12013-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
    1202013-10-17  Michael Saboff  <msaboff@apple.com>
    221
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubs.cpp

    r157581 r157588  
    110110#endif
    111111
    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 #endif
    128 }
    129 
    130112#if USE(JSVALUE32_64)
    131113EncodedExceptionHandler JIT_STUB cti_vm_handle_exception(CallFrame* callFrame)
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubs.h

    r157581 r157588  
    352352#endif
    353353
    354 void performPlatformSpecificJITAssertions(VM*);
    355 
    356354extern "C" {
    357355
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsARM.h

    r157581 r157588  
    477477#endif // COMPILER(MSVC)
    478478
    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 
    486479} // namespace JSC
    487480
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsARM64.h

    r157581 r157588  
    149149#endif // COMPILER(GCC)
    150150
    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 
    172151} // namespace JSC
    173152
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsARMv7.h

    r157581 r157588  
    535535#endif // COMPILER(RVCT)
    536536
    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_ASSERT
    542     // 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 
    560537} // namespace JSC
    561538
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsMIPS.h

    r157581 r157588  
    207207#endif // WTF_MIPS_PIC
    208208
    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 
    222209} // namespace JSC
    223210
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsSH4.h

    r157581 r157588  
    142142    rtype JITStubThunked_##op(STUB_ARGS_DECLARATION)
    143143
    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 
    150144} // namespace JSC
    151145
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsX86.h

    r157581 r157588  
    4646#if COMPILER(GCC)
    4747
    48 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
    49 // 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 
    5548asm (
    5649".text\n"
     
    256249#if COMPILER(MSVC)
    257250
    258 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
    259 // 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 
    265251extern "C" {
    266252
  • TabularUnified trunk/Source/JavaScriptCore/jit/JITStubsX86_64.h

    r157581 r157588  
    4545
    4646#if COMPILER(GCC)
    47 
    48 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
    49 // 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);
    5347
    5448asm (
     
    282276#endif // COMPILER(GCC)
    283277
    284 #if COMPILER(MSVC)
    285 
    286 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
    287 // 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 
    293278} // namespace JSC
    294279
  • TabularUnified trunk/Source/JavaScriptCore/runtime/VM.cpp

    r157420 r157588  
    254254#if ENABLE(JIT)
    255255    jitStubs = adoptPtr(new JITThunks());
    256     performPlatformSpecificJITAssertions(this);
    257256#endif
    258257
Note: See TracChangeset for help on using the changeset viewer.