summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/jit/JITStubsMSVC64.asm
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-30 12:48:17 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-30 12:48:17 +0200
commit881da28418d380042aa95a97f0cbd42560a64f7c (patch)
treea794dff3274695e99c651902dde93d934ea7a5af /Source/JavaScriptCore/jit/JITStubsMSVC64.asm
parent7e104c57a70fdf551bb3d22a5d637cdcbc69dbea (diff)
parent0fcedcd17cc00d3dd44c718b3cb36c1033319671 (diff)
downloadqtwebkit-881da28418d380042aa95a97f0cbd42560a64f7c.tar.gz
Merge 'wip/next' into dev
Change-Id: Iff9ee5e23bb326c4371ec8ed81d56f2f05d680e9
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