50 |
%define prm7d dword prm7 |
%define prm7d dword prm7 |
51 |
%define prm8d dword prm8 |
%define prm8d dword prm8 |
52 |
|
|
53 |
|
%macro PUSH_XMM6_XMM7 0 |
54 |
|
movdqa [_ESP+PTR_SIZE], xmm6 |
55 |
|
movdqa [_ESP+PTR_SIZE+16], xmm7 |
56 |
|
%endmacro |
57 |
|
|
58 |
|
%macro POP_XMM6_XMM7 0 |
59 |
|
movdqa xmm6, [_ESP+PTR_SIZE] |
60 |
|
movdqa xmm7, [_ESP+PTR_SIZE+16] |
61 |
|
%endmacro |
62 |
|
|
63 |
%else ; Linux |
%else ; Linux |
64 |
|
|
65 |
%define prm1 rdi |
%define prm1 rdi |
80 |
%define prm7d dword prm7 |
%define prm7d dword prm7 |
81 |
%define prm8d dword prm8 |
%define prm8d dword prm8 |
82 |
|
|
83 |
|
%define PUSH_XMM6_XMM7 |
84 |
|
%define POP_XMM6_XMM7 |
85 |
|
|
86 |
%endif |
%endif |
87 |
|
|
88 |
%define _EAX rax |
%define _EAX rax |
103 |
%define PTR_SIZE 8 |
%define PTR_SIZE 8 |
104 |
%define PTR_TYPE qword |
%define PTR_TYPE qword |
105 |
|
|
106 |
|
%ifdef __YASM_VERSION_ID__ |
107 |
|
%define XVID_MOVSXD movsxd |
108 |
|
%else |
109 |
|
%define XVID_MOVSXD movsx |
110 |
|
%endif |
111 |
|
|
112 |
%else |
%else |
113 |
|
|
114 |
%define SECTION_ALIGN 16 |
%define SECTION_ALIGN 16 |
151 |
%define PTR_SIZE 4 |
%define PTR_SIZE 4 |
152 |
%define PTR_TYPE dword |
%define PTR_TYPE dword |
153 |
|
|
154 |
|
%define PUSH_XMM6_XMM7 |
155 |
|
%define POP_XMM6_XMM7 |
156 |
|
|
157 |
|
%define XVID_MOVSXD movsx |
158 |
%endif |
%endif |
159 |
|
|
160 |
|
|
162 |
%define PREFIX |
%define PREFIX |
163 |
%endif |
%endif |
164 |
|
|
165 |
|
%ifdef NO_PREFIX |
166 |
|
%undef PREFIX |
167 |
|
%endif |
168 |
|
|
169 |
%macro DATA 0 |
%macro DATA 0 |
170 |
%ifdef FORMAT_COFF |
%ifdef FORMAT_COFF |
171 |
SECTION .rodata |
SECTION .rodata |
174 |
%endif |
%endif |
175 |
%endmacro |
%endmacro |
176 |
|
|
177 |
|
%macro TEXT 0 |
178 |
|
%ifidn __OUTPUT_FORMAT__,macho32 |
179 |
|
SECTION .text align=SECTION_ALIGN |
180 |
|
%else |
181 |
|
%ifidn __OUTPUT_FORMAT__,macho64 |
182 |
|
SECTION .text align=SECTION_ALIGN |
183 |
|
%else |
184 |
|
SECTION .rotext align=SECTION_ALIGN |
185 |
|
%endif |
186 |
|
%endif |
187 |
|
%endmacro |
188 |
|
|
189 |
%macro cglobal 1 |
%macro cglobal 1 |
190 |
%ifdef PREFIX |
%ifdef PREFIX |
191 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
207 |
%endif |
%endif |
208 |
%endif |
%endif |
209 |
%endmacro |
%endmacro |
210 |
|
|
211 |
|
%macro NON_EXEC_STACK 0 |
212 |
|
%ifidn __OUTPUT_FORMAT__,elf |
213 |
|
section .note.GNU-stack noalloc noexec nowrite progbits |
214 |
|
%endif |
215 |
|
%ifidn __OUTPUT_FORMAT__,elf64 |
216 |
|
section .note.GNU-stack noalloc noexec nowrite progbits |
217 |
|
%endif |
218 |
|
%endmacro |