Changeset 157650 in webkit
- Timestamp:
- Oct 18, 2013 3:57:15 PM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r157645 r157650 1 2013-10-18 Mark Lam <mark.lam@apple.com> 2 3 Remove excess reserved space in ctiTrampoline frames for X86 and X86_64. 4 https://bugs.webkit.org/show_bug.cgi?id=123037. 5 6 Reviewed by Geoffrey Garen. 7 8 * jit/JITStubsMSVC64.asm: 9 * jit/JITStubsX86.h: 10 * jit/JITStubsX86_64.h: 11 1 12 2013-10-18 Filip Pizlo <fpizlo@apple.com> 2 13 -
trunk/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
r157636 r157650 47 47 push rbx 48 48 49 ; Decrease rsp to point to the start of our JITStackFrame 50 sub rsp, 58h 49 ; JIT operations can use up to 6 args (4 in registers and 2 on the stack). 50 ; In addition, X86_64 ABI specifies that the worse case stack alignment 51 ; requirement is 32 bytes. Based on these factors, we need to pad the stack 52 ; and additional 28h bytes. 53 sub rsp, 28h 51 54 mov r12, 512 52 55 mov r14, 0FFFF000000000000h … … 54 57 mov r13, r8 55 58 call rcx 56 add rsp, 58h59 add rsp, 28h 57 60 pop rbx 58 61 pop r15 … … 65 68 66 69 ctiOpThrowNotCaught PROC 67 add rsp, 58h70 add rsp, 28h 68 71 pop rbx 69 72 pop r15 -
trunk/Source/JavaScriptCore/jit/JITStubsX86.h
r157636 r157650 56 56 "pushl %edi" "\n" 57 57 "pushl %ebx" "\n" 58 "subl $0x3c, %esp" "\n" 59 "movl 0x58(%esp), %edi" "\n" 60 "call *0x50(%esp)" "\n" 61 "addl $0x3c, %esp" "\n" 58 59 // JIT Operation can use up to 6 arguments right now. So, we need to 60 // reserve space in this stack frame for the out-going args. To ensure that 61 // the stack remains aligned on an 16 byte boundary, we round the padding up 62 // by 0x1c bytes. 63 "subl $0x1c, %esp" "\n" 64 "movl 0x38(%esp), %edi" "\n" 65 "call *0x30(%esp)" "\n" 66 "addl $0x1c, %esp" "\n" 67 62 68 "popl %ebx" "\n" 63 69 "popl %edi" "\n" … … 74 80 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" 75 81 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 76 "addl $0x 3c, %esp" "\n"82 "addl $0x1c, %esp" "\n" 77 83 "popl %ebx" "\n" 78 84 "popl %edi" "\n" … … 249 255 push edi; 250 256 push ebx; 251 sub esp, 0x 3c;257 sub esp, 0x1c; 252 258 mov ecx, esp; 253 mov edi, [esp + 0x 58];254 call [esp + 0x 50];255 add esp, 0x 3c;259 mov edi, [esp + 0x38]; 260 call [esp + 0x30]; 261 add esp, 0x1c; 256 262 pop ebx; 257 263 pop edi; … … 265 271 { 266 272 __asm { 267 add esp, 0x 3c;273 add esp, 0x1c; 268 274 pop ebx; 269 275 pop edi; -
trunk/Source/JavaScriptCore/jit/JITStubsX86_64.h
r157636 r157650 58 58 "pushq %r15" "\n" 59 59 "pushq %rbx" "\n" 60 // Form the JIT stubs area 61 "pushq %r9" "\n" 62 "pushq %r8" "\n" 63 "pushq %rcx" "\n" 64 "pushq %rdx" "\n" 65 "pushq %rsi" "\n" 66 "pushq %rdi" "\n" 67 "subq $0x48, %rsp" "\n" 60 61 // The X86_64 ABI specifies that the worse case stack alignment requirement 62 // is 32 bytes. 63 "subq $0x8, %rsp" "\n" 64 68 65 "movq $512, %r12" "\n" 69 66 "movq $0xFFFF000000000000, %r14" "\n" … … 71 68 "movq %rdx, %r13" "\n" 72 69 "call *%rdi" "\n" 73 "addq $0x 78, %rsp" "\n"70 "addq $0x8, %rsp" "\n" 74 71 "popq %rbx" "\n" 75 72 "popq %r15" "\n" … … 88 85 HIDE_SYMBOL(ctiOpThrowNotCaught) "\n" 89 86 SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n" 90 "addq $0x 78, %rsp" "\n"87 "addq $0x8, %rsp" "\n" 91 88 "popq %rbx" "\n" 92 89 "popq %r15" "\n"
Note: See TracChangeset
for help on using the changeset viewer.