Changeset 44838 in webkit for trunk/JavaScriptCore/jit/JITStubs.cpp
- Timestamp:
- Jun 18, 2009, 7:32:29 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITStubs.cpp
r44796 r44838 78 78 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedEBX) == 0x1c, JITStackFrame_stub_argument_space_matches_ctiTrampoline); 79 79 80 asm (80 asm volatile ( 81 81 ".globl " SYMBOL_STRING(ctiTrampoline) "\n" 82 82 SYMBOL_STRING(ctiTrampoline) ":" "\n" … … 98 98 ); 99 99 100 asm (100 asm volatile ( 101 101 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 102 102 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" … … 113 113 ); 114 114 115 asm volatile ( 116 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 117 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 118 "addl $0x1c, %esp" "\n" 119 "popl %ebx" "\n" 120 "popl %edi" "\n" 121 "popl %esi" "\n" 122 "popl %ebp" "\n" 123 "ret" "\n" 124 ); 125 115 126 #elif COMPILER(GCC) && PLATFORM(X86_64) 116 127 … … 125 136 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x48, JITStackFrame_stub_argument_space_matches_ctiTrampoline); 126 137 127 asm (138 asm volatile ( 128 139 ".globl " SYMBOL_STRING(ctiTrampoline) "\n" 129 140 SYMBOL_STRING(ctiTrampoline) ":" "\n" … … 151 162 ); 152 163 153 asm (164 asm volatile ( 154 165 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 155 166 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" … … 166 177 ); 167 178 179 asm volatile ( 180 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 181 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 182 "addq $0x48, %rsp" "\n" 183 "popq %rbx" "\n" 184 "popq %r15" "\n" 185 "popq %r14" "\n" 186 "popq %r13" "\n" 187 "popq %r12" "\n" 188 "popq %rbp" "\n" 189 "ret" "\n" 190 ); 191 168 192 #elif COMPILER(GCC) && PLATFORM(ARM_V7) 169 193 … … 183 207 COMPILE_ASSERT(offsetof(struct JITStackFrame, enabledProfilerReference) == 0x3c, JITStackFrame_enabledProfilerReference_offset_matches_ctiTrampoline); 184 208 185 asm volatile 209 asm volatile ( 186 210 ".text" "\n" 187 211 ".align 2" "\n" … … 290 314 } 291 315 } 316 317 __declspec(naked) void ctiOpThrowNotCaught() 318 { 319 __asm { 320 add esp, 0x1c; 321 pop ebx; 322 pop edi; 323 pop esi; 324 pop ebp; 325 ret; 326 } 327 } 292 328 } 293 329 … … 2313 2349 if (!handler) { 2314 2350 *stackFrame.exception = exceptionValue; 2351 STUB_SET_RETURN_ADDRESS(reinterpret_cast<void*>(ctiOpThrowNotCaught)); 2315 2352 return JSValue::encode(jsNull()); 2316 2353 }
Note:
See TracChangeset
for help on using the changeset viewer.