summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/jit/JITStubsMSVC64.asm')
-rw-r--r--Source/JavaScriptCore/jit/JITStubsMSVC64.asm66
1 files changed, 13 insertions, 53 deletions
diff --git a/Source/JavaScriptCore/jit/JITStubsMSVC64.asm b/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
index 054214153..ef9cd4e0e 100644
--- a/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
+++ b/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
@@ -1,5 +1,5 @@
;/*
-; Copyright (C) 2015 The Qt Company Ltd
+; Copyright (C) 2014 Apple Inc. All rights reserved.
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions
@@ -23,62 +23,22 @@
; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*/
-EXTERN cti_vm_throw : near
-PUBLIC ctiTrampoline
-PUBLIC ctiVMThrowTrampoline
-PUBLIC ctiOpThrowNotCaught
+EXTERN getHostCallReturnValueWithExecState : near
-_TEXT SEGMENT
-
-ctiTrampoline PROC
- ; Dump register parameters to their home address
- mov qword ptr[rsp+20h], r9
- mov qword ptr[rsp+18h], r8
- mov qword ptr[rsp+10h], rdx
- mov qword ptr[rsp+8h], rcx
-
- push rbp
- mov rbp, rsp
- push r12
- push r13
- push r14
- push r15
- push rbx
+PUBLIC getHostCallReturnValue
- ; Decrease rsp to point to the start of our JITStackFrame
- sub rsp, 58h
- mov r12, 512
- mov r14, 0FFFF000000000000h
- mov r15, 0FFFF000000000002h
- mov r13, r8
- call rcx
- add rsp, 58h
- pop rbx
- pop r15
- pop r14
- pop r13
- pop r12
- pop rbp
- ret
-ctiTrampoline ENDP
-
-ctiVMThrowTrampoline PROC
- mov rcx, rsp
- call cti_vm_throw
- int 3
-ctiVMThrowTrampoline ENDP
+_TEXT SEGMENT
-ctiOpThrowNotCaught PROC
- add rsp, 58h
- pop rbx
- pop r15
- pop r14
- pop r13
- pop r12
- pop rbp
+getHostCallReturnValue PROC
+ lea rcx, [rsp - 8]
+ ; Allocate space for all 4 parameter registers, and align stack pointer to 16 bytes boundary by allocating another 8 bytes.
+ ; The stack alignment is needed to fix a crash in the CRT library on a floating point instruction.
+ sub rsp, 40
+ call getHostCallReturnValueWithExecState
+ add rsp, 40
ret
-ctiOpThrowNotCaught ENDP
+getHostCallReturnValue ENDP
_TEXT ENDS
-END \ No newline at end of file
+END