]> git.saurik.com Git - apple/javascriptcore.git/blame - jit/JITStubsMSVC64.asm
JavaScriptCore-1218.35.tar.gz
[apple/javascriptcore.git] / jit / JITStubsMSVC64.asm
CommitLineData
93a37866
A
1;/*
2; Copyright (C) 2013 Digia Plc. and/or its subsidiary(-ies)
3;
4; Redistribution and use in source and binary forms, with or without
5; modification, are permitted provided that the following conditions
6; are met:
7; 1. Redistributions of source code must retain the above copyright
8; notice, this list of conditions and the following disclaimer.
9; 2. Redistributions in binary form must reproduce the above copyright
10; notice, this list of conditions and the following disclaimer in the
11; documentation and/or other materials provided with the distribution.
12;
13; THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21; OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24;*/
25
26EXTERN cti_vm_throw : near
27PUBLIC ctiTrampoline
28PUBLIC ctiVMThrowTrampoline
29PUBLIC ctiOpThrowNotCaught
30
31_TEXT SEGMENT
32
33ctiTrampoline PROC
34 ; Dump register parameters to their home address
35 mov qword ptr[rsp+20h], r9
36 mov qword ptr[rsp+18h], r8
37 mov qword ptr[rsp+10h], rdx
38 mov qword ptr[rsp+8h], rcx
39
40 push rbp
41 mov rbp, rsp
42 push r12
43 push r13
44 push r14
45 push r15
46 push rbx
47
48 ; Decrease rsp to point to the start of our JITStackFrame
49 sub rsp, 58h
50 mov r12, 512
51 mov r14, 0FFFF000000000000h
52 mov r15, 0FFFF000000000002h
53 mov r13, r8
54 call rcx
55 add rsp, 58h
56 pop rbx
57 pop r15
58 pop r14
59 pop r13
60 pop r12
61 pop rbp
62 ret
63ctiTrampoline ENDP
64
65ctiVMThrowTrampoline PROC
66 mov rcx, rsp
67 call cti_vm_throw
68 int 3
69ctiVMThrowTrampoline ENDP
70
71ctiOpThrowNotCaught PROC
72 add rsp, 58h
73 pop rbx
74 pop r15
75 pop r14
76 pop r13
77 pop r12
78 pop rbp
79 ret
80ctiOpThrowNotCaught ENDP
81
82_TEXT ENDS
83
84END