Merge pull request #1074 from esdrubal/bug18421
[mono.git] / mono / utils / win64.asm
1 ifndef X64
2
3 .386
4 .model flat, c
5
6 endif
7
8 .code
9
10 ifdef X64
11
12 PUBLIC mono_context_get_current
13
14 mono_context_get_current PROC
15 ;rdi has the ctx ptr
16         mov [rcx + 00h], rax
17         mov [rcx + 08h], rbx
18         mov [rcx + 10h], rcx
19         mov [rcx + 18h], rdx
20         mov [rcx + 20h], rbp
21         mov [rcx + 28h], rsp
22         mov [rcx + 30h], rsi
23         mov [rcx + 38h], rdi
24         mov [rcx + 40h], r8
25         mov [rcx + 48h], r9
26         mov [rcx + 50h], r10
27         mov [rcx + 58h], r11
28         mov [rcx + 60h], r12
29         mov [rcx + 68h], r13
30         mov [rcx + 70h], r14
31         mov [rcx + 78h], r15
32
33         lea rax, __mono_current_ip
34 __mono_current_ip:
35         mov [rcx + 80h], rax
36         ret
37
38 mono_context_get_current endP
39
40 endif
41
42 end