File: dyncall_callback_x64_masm.asm

package info (click to toggle)
nqp 2014.07-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,596 kB
  • ctags: 7,993
  • sloc: ansic: 22,689; java: 20,240; cpp: 4,956; asm: 3,976; perl: 950; python: 267; sh: 245; makefile: 14
file content (89 lines) | stat: -rw-r--r-- 1,818 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
; auto-generated by gen-masm.sh
.CODE
DCThunk_size = 24
DCArgs_size_win64 = 80
DCArgs_size_sysv = 128
DCValue_size = 8
FRAME_arg0_win64 = 48
FRAME_arg0_sysv = 16
FRAME_return = 8
FRAME_parent = 0
FRAME_DCArgs_sysv = -128
FRAME_DCValue_sysv = -136
FRAME_DCArgs_win64 = -80
FRAME_DCValue_win64 = -80
CTX_thunk = 0
CTX_handler = 24
CTX_userdata = 32
DCCallback_size = 40
dcCallback_x64_sysv PROC
OPTION PROLOGUE:NONE, EPILOGUE:NONE
 push RBP
 mov RBP,RSP
 sub RSP,8*8
 movsd qword ptr [RSP+8*7],XMM7
 movsd qword ptr [RSP+8*6],XMM6
 movsd qword ptr [RSP+8*5],XMM5
 movsd qword ptr [RSP+8*4],XMM4
 movsd qword ptr [RSP+8*3],XMM3
 movsd qword ptr [RSP+8*2],XMM2
 movsd qword ptr [RSP+8*1],XMM1
 movsd qword ptr [RSP+8*0],XMM0
 push R9
 push R8
 push RCX
 push RDX
 push RSI
 push RDI
 push 0
 lea RDX,qword ptr [RBP+FRAME_arg0_sysv]
 push RDX
 mov RSI,RSP
 push 0
 mov RDI,RAX
 mov RCX,qword ptr [RDI+CTX_userdata]
 mov RDX,RSP
 push 0
 call qword ptr [RAX+CTX_handler]
 mov DL,AL
 mov RAX,qword ptr [RBP+FRAME_DCValue_sysv]
 cmp DL,102
 je return_f64
 cmp DL,100
 jne return_i64
return_f64:
 movd XMM0,RAX
return_i64:
 mov RSP,RBP
 pop RBP
 ret
dcCallback_x64_sysv ENDP
dcCallback_x64_win64 PROC
OPTION PROLOGUE:NONE, EPILOGUE:NONE
 push RBP
 mov RBP,RSP
 sub RSP,4*8
 movsd qword ptr [RSP+8*3],XMM3
 movsd qword ptr [RSP+8*2],XMM2
 movsd qword ptr [RSP+8*1],XMM1
 movsd qword ptr [RSP+8*0],XMM0
 push R9
 push R8
 push RDX
 push RCX
 push 0
 lea RDX,qword ptr [RBP+FRAME_arg0_win64]
 push RDX
 mov RDX,RSP
 mov RCX,RAX
 mov R9,qword ptr [RAX+CTX_userdata]
 mov R8,RSP
 sub RSP,4*8
 call qword ptr [RAX+CTX_handler]
 mov RAX,qword ptr [RBP+FRAME_DCValue_win64]
 movd XMM0,RAX
 mov RSP,RBP
 pop RBP
 ret
dcCallback_x64_win64 ENDP
END