annotate dyncallback/dyncall_callback_x64.S @ 357:d982a00c2177

- PPC64 asm syntax fix, specifying explicitly comparison mode for cmpi (newer toolchains complain, older ones took optional field of instruction which happened to be same value)
author Tassilo Philipp
date Tue, 25 Feb 2020 18:16:13 +0100
parents f5577f6bf97a
children 41e2a01cad32
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 /*
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 Package: dyncall
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 Library: dyncallback
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 File: dyncallback/dyncall_callback_x64.S
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 Description: Callback Thunk entry for x64 (portasm version)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 License:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8
281
f5577f6bf97a - file header cleanups for release
Tassilo Philipp
parents: 256
diff changeset
9 Copyright (c) 2011-2018 Daniel Adler <dadler@uni-goettingen.de>
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
27 #include "../portasm/portasm-x64.S"
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 /* structure sizes */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 SET(DCThunk_size,24)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 SET(DCArgs_size_win64,80)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 SET(DCArgs_size_sysv,128)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 SET(DCValue_size,8)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 /* frame local variable offsets relative to %rbp*/
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 SET(FRAME_arg0_win64,48)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 SET(FRAME_arg0_sysv,16)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 SET(FRAME_return,8)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 SET(FRAME_parent,0)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 SET(FRAME_DCArgs_sysv,-128)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 SET(FRAME_DCValue_sysv,-136)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 SET(FRAME_DCArgs_win64,-80)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 SET(FRAME_DCValue_win64,-80)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 /* struct DCCallback */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 SET(CTX_thunk,0)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 SET(CTX_handler,24)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 SET(CTX_userdata,32)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 SET(DCCallback_size,40)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 /* character constants */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 #define ASCII_f 102
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 #define ASCII_d 100
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 GLOBAL(dcCallback_x64_sysv)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 BEGIN_PROC(dcCallback_x64_sysv)
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
61
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 PUSH(RBP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 MOV(RSP,RBP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 /* initialize DCArgs */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 /* float parameters (8 registers spill to DCArgs) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
69 SUB(LIT(8*8),RSP)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 MOVSD(XMM7, QWORD(RSP,8*7)) /* struct offset 120: float parameter 7 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 MOVSD(XMM6, QWORD(RSP,8*6)) /* struct offset 112: float parameter 6 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 MOVSD(XMM5, QWORD(RSP,8*5)) /* struct offset 104: float parameter 5 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 MOVSD(XMM4, QWORD(RSP,8*4)) /* struct offset 96: float parameter 4 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 MOVSD(XMM3, QWORD(RSP,8*3)) /* struct offset 88: float parameter 3 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 MOVSD(XMM2, QWORD(RSP,8*2)) /* struct offset 80: float parameter 2 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 MOVSD(XMM1, QWORD(RSP,8*1)) /* struct offset 72: float parameter 1 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 MOVSD(XMM0, QWORD(RSP,8*0)) /* struct offset 64: float parameter 0 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 /* integer parameters (6 registers spill to DCArgs) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82 PUSH(R9) /* struct offset 56: parameter 5 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 PUSH(R8) /* struct offset 48: parameter 4 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84 PUSH(RCX) /* struct offset 40: parameter 3 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
85 PUSH(RDX) /* struct offset 32: parameter 2 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86 PUSH(RSI) /* struct offset 24: parameter 1 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 PUSH(RDI) /* struct offset 16: parameter 0 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
89 /* register counts for integer/pointer and float regs */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91 PUSH(LIT(0)) /* struct offset 12: fcount */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 /* struct offset 8: icount */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94 LEA(QWORD(RBP,FRAME_arg0_sysv),RDX) /* struct offset 0: stack pointer */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95 PUSH(RDX)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
97 MOV(RSP,RSI) /* arg 1 RSI : DCArgs* */
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
98
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99 /* initialize DCValue */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 PUSH(LIT(0)) /* struct offset 0: return value (max long long) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103 /* call handler( *ctx, *args, *value, *userdata) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105 MOV(RAX,RDI) /* arg 0 RDI : DCCallback* (RAX) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106 MOV(QWORD(RDI,CTX_userdata),RCX) /* arg 3 RCX : userdata* */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 MOV(RSP,RDX) /* arg 2 RDX : DCValue* */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 PUSH(LIT(0)) /* align to 16 bytes */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
109 CALL_REG(QWORD(RAX,CTX_handler))
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
110
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111 /* pass return type via registers, handle ints and floats */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
112
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
113 MOV(QWORD(RBP,FRAME_DCValue_sysv),RAX)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
114 MOVD(RAX,XMM0)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116 MOV(RBP,RSP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 POP(RBP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
118 RET()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
120 END_PROC(dcCallback_x64_sysv)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
121
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
122 GLOBAL(dcCallback_x64_win64)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
123 BEGIN_PROC(dcCallback_x64_win64)
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
124
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125 PUSH(RBP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126 MOV(RSP,RBP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
127
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
128 /* initialize DCArgs */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
129
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
130 /* float parameters (4 registers spill to DCArgs) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
132 SUB(LIT(4*8),RSP)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
134 MOVSD(XMM3, QWORD(RSP,8*3)) /* struct offset 72: float parameter 3 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
135 MOVSD(XMM2, QWORD(RSP,8*2)) /* struct offset 64: float parameter 2 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
136 MOVSD(XMM1, QWORD(RSP,8*1)) /* struct offset 56: float parameter 1 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
137 MOVSD(XMM0, QWORD(RSP,8*0)) /* struct offset 48: float parameter 0 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
138
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
139 /* integer parameters (4 registers spill to DCArgs) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
140
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
141 PUSH(R9) /* struct offset 40: parameter 3 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
142 PUSH(R8) /* struct offset 32: parameter 2 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
143 PUSH(RDX) /* struct offset 24: parameter 1 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
144 PUSH(RCX) /* struct offset 16: parameter 0 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
145
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
146 /* register counts for integer/pointer and float regs */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
147
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
148 PUSH(LIT(0)) /* struct offset 12: fcount */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
149 /* struct offset 8: icount */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
150
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
151 LEA(QWORD(RBP,FRAME_arg0_win64),RDX) /* struct offset 0: stack pointer */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
152 PUSH(RDX)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
153
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
154 MOV(RSP,RDX) /* arg 1 RDX : DCArgs* */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
155
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
156 /* initialize DCValue */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
157
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
158 // PUSHQ(LIT(0)) /* struct offset 0: return value (max long long) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
159
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
160 /* call handler( *ctx, *args, *value, *userdata) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
161
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
162 MOV(RAX,RCX) /* arg 0 RCX : DCCallback* (RAX) */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
163 MOV(QWORD(RAX,CTX_userdata),R9) /* arg 3 R9 : userdata* */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
164 MOV(RSP,R8) /* arg 2 R8 : DCValue* */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
165 SUB(LIT(4*8),RSP) /* make room for spill area and call */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
166 CALL_REG(QWORD(RAX,CTX_handler))
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
167
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
168 /* pass return type via registers, handle ints and floats */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
169
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
170 MOV(QWORD(RBP,FRAME_DCValue_win64),RAX)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
171 MOVD(RAX,XMM0)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
172
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
173 MOV(RBP,RSP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
174 POP(RBP)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
175 RET()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
176
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 0
diff changeset
177 END_PROC(dcCallback_x64_win64)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
178
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
179 END_ASM
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
180