19 |
; * along with this program ; if not, write to the Free Software |
; * along with this program ; if not, write to the Free Software |
20 |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
; * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
; * |
; * |
22 |
; * $Id: cpuid.asm,v 1.12 2008-08-19 09:06:48 Isibaar Exp $ |
; * $Id: cpuid.asm,v 1.13 2008-11-11 20:46:24 Isibaar Exp $ |
23 |
; * |
; * |
24 |
; ***************************************************************************/ |
; ***************************************************************************/ |
25 |
|
|
30 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
31 |
global _%1:function %1.endfunc-%1 |
global _%1:function %1.endfunc-%1 |
32 |
%define %1 _%1:function %1.endfunc-%1 |
%define %1 _%1:function %1.endfunc-%1 |
33 |
|
%define ENDFUNC .endfunc |
34 |
%else |
%else |
35 |
global _%1 |
global _%1 |
36 |
%define %1 _%1 |
%define %1 _%1 |
37 |
|
%define ENDFUNC |
38 |
%endif |
%endif |
39 |
%else |
%else |
40 |
%ifdef MARK_FUNCS |
%ifdef MARK_FUNCS |
41 |
global %1:function %1.endfunc-%1 |
global %1:function %1.endfunc-%1 |
42 |
|
%define ENDFUNC .endfunc |
43 |
%else |
%else |
44 |
global %1 |
global %1 |
45 |
|
%define ENDFUNC |
46 |
%endif |
%endif |
47 |
%endif |
%endif |
48 |
%endmacro |
%endmacro |
198 |
pop ebx |
pop ebx |
199 |
|
|
200 |
ret |
ret |
201 |
.endfunc |
ENDFUNC |
202 |
|
|
203 |
; sse/sse2 operating support detection routines |
; sse/sse2 operating support detection routines |
204 |
; these will trigger an invalid instruction signal if not supported. |
; these will trigger an invalid instruction signal if not supported. |
207 |
sse_os_trigger: |
sse_os_trigger: |
208 |
xorps xmm0, xmm0 |
xorps xmm0, xmm0 |
209 |
ret |
ret |
210 |
.endfunc |
ENDFUNC |
211 |
|
|
212 |
|
|
213 |
ALIGN 16 |
ALIGN 16 |
215 |
sse2_os_trigger: |
sse2_os_trigger: |
216 |
xorpd xmm0, xmm0 |
xorpd xmm0, xmm0 |
217 |
ret |
ret |
218 |
.endfunc |
ENDFUNC |
219 |
|
|
220 |
|
|
221 |
; enter/exit mmx state |
; enter/exit mmx state |
224 |
emms_mmx: |
emms_mmx: |
225 |
emms |
emms |
226 |
ret |
ret |
227 |
.endfunc |
ENDFUNC |
228 |
|
|
229 |
; faster enter/exit mmx state |
; faster enter/exit mmx state |
230 |
ALIGN 16 |
ALIGN 16 |
232 |
emms_3dn: |
emms_3dn: |
233 |
femms |
femms |
234 |
ret |
ret |
235 |
.endfunc |
ENDFUNC |
236 |
|
|
237 |
|
|
238 |
|
|