Changeset 148663 in webkit for trunk/Source/JavaScriptCore/jit/JITStubs.cpp
- Timestamp:
- Apr 18, 2013, 3:11:22 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/jit/JITStubs.cpp
r148639 r148663 372 372 #else // USE(JSVALUE32_64) 373 373 374 #if COMPILER(GCC) && CPU(X86_64) 374 #if COMPILER(GCC) && CPU(X86_64) && !OS(WINDOWS) 375 375 376 376 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you … … 432 432 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 433 433 "addq $0x78, %rsp" "\n" 434 "popq %rbx" "\n" 435 "popq %r15" "\n" 436 "popq %r14" "\n" 437 "popq %r13" "\n" 438 "popq %r12" "\n" 439 "popq %rbp" "\n" 440 "ret" "\n" 441 ); 442 443 #elif COMPILER(GCC) && CPU(X86_64) && OS(WINDOWS) 444 445 // These ASSERTs remind you that, if you change the layout of JITStackFrame, you 446 // need to change the assembly trampolines below to match. 447 COMPILE_ASSERT(offsetof(struct JITStackFrame, code) % 16 == 0x0, JITStackFrame_maintains_16byte_stack_alignment); 448 COMPILE_ASSERT(offsetof(struct JITStackFrame, savedRBX) == 0x58, JITStackFrame_stub_argument_space_matches_ctiTrampoline); 449 450 asm ( 451 ".text\n" 452 ".globl " SYMBOL_STRING(ctiTrampoline) "\n" 453 HIDE_SYMBOL(ctiTrampoline) "\n" 454 SYMBOL_STRING(ctiTrampoline) ":" "\n" 455 // Dump register parameters to their home address 456 "movq %r9, 0x20(%rsp)" "\n" 457 "movq %r8, 0x18(%rsp)" "\n" 458 "movq %rdx, 0x10(%rsp)" "\n" 459 "movq %rcx, 0x8(%rsp)" "\n" 460 461 "pushq %rbp" "\n" 462 "movq %rsp, %rbp" "\n" 463 "pushq %r12" "\n" 464 "pushq %r13" "\n" 465 "pushq %r14" "\n" 466 "pushq %r15" "\n" 467 "pushq %rbx" "\n" 468 469 // Decrease rsp to point to the start of our JITStackFrame 470 "subq $0x58, %rsp" "\n" 471 "movq $512, %r12" "\n" 472 "movq $0xFFFF000000000000, %r14" "\n" 473 "movq $0xFFFF000000000002, %r15" "\n" 474 "movq %r8, %r13" "\n" 475 "call *%rcx" "\n" 476 "addq $0x58, %rsp" "\n" 477 "popq %rbx" "\n" 478 "popq %r15" "\n" 479 "popq %r14" "\n" 480 "popq %r13" "\n" 481 "popq %r12" "\n" 482 "popq %rbp" "\n" 483 "ret" "\n" 484 ".globl " SYMBOL_STRING(ctiTrampolineEnd) "\n" 485 HIDE_SYMBOL(ctiTrampolineEnd) "\n" 486 SYMBOL_STRING(ctiTrampolineEnd) ":" "\n" 487 ); 488 489 asm ( 490 ".globl " SYMBOL_STRING(ctiVMThrowTrampoline) "\n" 491 HIDE_SYMBOL(ctiVMThrowTrampoline) "\n" 492 SYMBOL_STRING(ctiVMThrowTrampoline) ":" "\n" 493 "movq %rsp, %rcx" "\n" 494 "call " LOCAL_REFERENCE(cti_vm_throw) "\n" 495 "int3" "\n" 496 ); 497 498 asm ( 499 ".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n" 500 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" 501 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 502 "addq $0x58, %rsp" "\n" 434 503 "popq %rbx" "\n" 435 504 "popq %r15" "\n"
Note:
See TracChangeset
for help on using the changeset viewer.