Changeset 50981 in webkit for trunk/JavaScriptCore/jit/JITStubs.cpp
- Timestamp:
- Nov 13, 2009, 4:44:42 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/jit/JITStubs.cpp
r50874 r50981 57 57 #include "Register.h" 58 58 #include "SamplingTool.h" 59 #include <wtf/StdLibExtras.h> 59 60 #include <stdarg.h> 60 61 #include <stdio.h> … … 269 270 "add sp, sp, #0x3c" "\n" 270 271 "bx lr" "\n" 272 ); 273 274 #elif COMPILER(GCC) && PLATFORM(ARM_TRADITIONAL) 275 276 asm volatile ( 277 ".globl " SYMBOL_STRING(ctiTrampoline) "\n" 278 SYMBOL_STRING(ctiTrampoline) ":" "\n" 279 "stmdb sp!, {r1-r3}" "\n" 280 "stmdb sp!, {r4-r8, lr}" "\n" 281 "sub sp, sp, #68" "\n" 282 "mov r4, r2" "\n" 283 "mov r5, #512" "\n" 284 // r0 contains the code 285 "mov lr, pc" "\n" 286 "mov pc, r0" "\n" 287 "add sp, sp, #68" "\n" 288 "ldmia sp!, {r4-r8, lr}" "\n" 289 "add sp, sp, #12" "\n" 290 "mov pc, lr" "\n" 291 ); 292 293 asm volatile ( 294 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 295 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" 296 "mov r0, sp" "\n" 297 "bl " SYMBOL_STRING(cti_vm_throw) "\n" 298 299 // Both has the same return sequence 300 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 301 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 302 "add sp, sp, #68" "\n" 303 "ldmia sp!, {r4-r8, lr}" "\n" 304 "add sp, sp, #12" "\n" 305 "mov pc, lr" "\n" 271 306 ); 272 307 … … 907 942 #elif PLATFORM(ARM_TRADITIONAL) && COMPILER(GCC) 908 943 944 #if USE(JSVALUE32_64) 945 #define THUNK_RETURN_ADDRESS_OFFSET 64 946 #else 947 #define THUNK_RETURN_ADDRESS_OFFSET 32 948 #endif 949 950 COMPILE_ASSERT(offsetof(struct JITStackFrame, thunkReturnAddress) == THUNK_RETURN_ADDRESS_OFFSET, JITStackFrame_thunkReturnAddress_offset_mismatch); 951 909 952 #define DEFINE_STUB_FUNCTION(rtype, op) \ 910 953 extern "C" { \ … … 914 957 ".globl " SYMBOL_STRING(cti_##op) "\n" \ 915 958 SYMBOL_STRING(cti_##op) ":" "\n" \ 916 "str lr, [sp, # 32]" "\n" \959 "str lr, [sp, #" STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "]" "\n" \ 917 960 "bl " SYMBOL_STRING(JITStubThunked_##op) "\n" \ 918 "ldr lr, [sp, # 32]" "\n" \961 "ldr lr, [sp, #" STRINGIZE_VALUE_OF(THUNK_RETURN_ADDRESS_OFFSET) "]" "\n" \ 919 962 "mov pc, lr" "\n" \ 920 963 ); \
Note:
See TracChangeset
for help on using the changeset viewer.