31 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
32 |
global _%1:function %1.endfunc-%1 |
global _%1:function %1.endfunc-%1 |
33 |
%define %1 _%1:function %1.endfunc-%1 |
%define %1 _%1:function %1.endfunc-%1 |
34 |
|
%define ENDFUNC .endfunc |
35 |
%else |
%else |
36 |
global _%1 |
global _%1 |
37 |
%define %1 _%1 |
%define %1 _%1 |
38 |
|
%define ENDFUNC |
39 |
%endif |
%endif |
40 |
%else |
%else |
41 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
42 |
global %1:function %1.endfunc-%1 |
global %1:function %1.endfunc-%1 |
43 |
|
%define ENDFUNC .endfunc |
44 |
%else |
%else |
45 |
global %1 |
global %1 |
46 |
|
%define ENDFUNC |
47 |
%endif |
%endif |
48 |
%endif |
%endif |
49 |
%endmacro |
%endmacro |
188 |
pop rbx |
pop rbx |
189 |
|
|
190 |
ret |
ret |
191 |
.endfunc |
ENDFUNC |
192 |
|
|
193 |
; sse/sse2 operating support detection routines |
; sse/sse2 operating support detection routines |
194 |
; these will trigger an invalid instruction signal if not supported. |
; these will trigger an invalid instruction signal if not supported. |
197 |
sse_os_trigger: |
sse_os_trigger: |
198 |
xorps xmm0, xmm0 |
xorps xmm0, xmm0 |
199 |
ret |
ret |
200 |
.endfunc |
ENDFUNC |
201 |
|
|
202 |
|
|
203 |
ALIGN 16 |
ALIGN 16 |
205 |
sse2_os_trigger: |
sse2_os_trigger: |
206 |
xorpd xmm0, xmm0 |
xorpd xmm0, xmm0 |
207 |
ret |
ret |
208 |
.endfunc |
ENDFUNC |
209 |
|
|
210 |
|
|
211 |
; enter/exit mmx state |
; enter/exit mmx state |
214 |
emms_mmx: |
emms_mmx: |
215 |
emms |
emms |
216 |
ret |
ret |
217 |
.endfunc |
ENDFUNC |
218 |
|
|
219 |
; faster enter/exit mmx state |
; faster enter/exit mmx state |
220 |
ALIGN 16 |
ALIGN 16 |
222 |
emms_3dn: |
emms_3dn: |
223 |
femms |
femms |
224 |
ret |
ret |
225 |
.endfunc |
ENDFUNC |
226 |
|
|
227 |
|
%ifidn __OUTPUT_FORMAT__,elf |
228 |
|
section ".note.GNU-stack" noalloc noexec nowrite progbits |
229 |
|
%endif |
230 |
|
|