[cvs] / xvidcore / src / utils / x86_asm / cpuid.asm Repository:
ViewVC logotype

Diff of /xvidcore/src/utils/x86_asm/cpuid.asm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5, Mon Mar 22 22:36:24 2004 UTC revision 1.9, Sun Aug 29 10:02:38 2004 UTC
# Line 27  Line 27 
27    
28  %macro cglobal 1  %macro cglobal 1
29          %ifdef PREFIX          %ifdef PREFIX
30                    %ifdef MARK_FUNCS
31                            global _%1:function %1.endfunc-%1
32                            %define %1 _%1:function %1.endfunc-%1
33                    %else
34                  global _%1                  global _%1
35                  %define %1 _%1                  %define %1 _%1
36                    %endif
37            %else
38                    %ifdef MARK_FUNCS
39                            global %1:function %1.endfunc-%1
40          %else          %else
41                  global %1                  global %1
42          %endif          %endif
43            %endif
44  %endmacro  %endmacro
45    
46  ;=============================================================================  ;=============================================================================
# Line 62  Line 71 
71    
72  ALIGN 32  ALIGN 32
73  %ifdef FORMAT_COFF  %ifdef FORMAT_COFF
74  SECTION .rodata data  SECTION .rodata
75  %else  %else
76  SECTION .rodata data align=16  SECTION .rodata align=16
77  %endif  %endif
78    
79  vendorAMD:  vendorAMD:
# Line 99  Line 108 
108    push edi    push edi
109    push ebp    push ebp
110    
111      sub esp, 12             ; Stack space for vendor name
112    
113    xor ebp, ebp    xor ebp, ebp
114    
115          ; CPUID command ?          ; CPUID command ?
# Line 118  Line 129 
129          ; get vendor string, used later          ; get vendor string, used later
130    xor eax, eax    xor eax, eax
131    cpuid    cpuid
132    mov [esp-12], ebx       ; vendor string    mov [esp], ebx       ; vendor string
133    mov [esp-12+4], edx    mov [esp+4], edx
134    mov [esp-12+8], ecx    mov [esp+8], ecx
135    test eax, eax    test eax, eax
136    
137    jz near .cpu_quit    jz near .cpu_quit
# Line 151  Line 162 
162    
163   ; AMD cpu ?   ; AMD cpu ?
164    lea esi, [vendorAMD]    lea esi, [vendorAMD]
165    lea edi, [esp-12]    lea edi, [esp]
166    mov ecx, 12    mov ecx, 12
167    cld    cld
168    repe cmpsb    repe cmpsb
# Line 170  Line 181 
181    
182    mov eax, ebp    mov eax, ebp
183    
184      add esp, 12
185    
186    pop ebp    pop ebp
187    pop edi    pop edi
188    pop esi    pop esi
189    pop ebx    pop ebx
190    
191    ret    ret
192    .endfunc
193    
194  ; sse/sse2 operating support detection routines  ; sse/sse2 operating support detection routines
195  ; these will trigger an invalid instruction signal if not supported.  ; these will trigger an invalid instruction signal if not supported.
# Line 184  Line 198 
198  sse_os_trigger:  sse_os_trigger:
199    xorps xmm0, xmm0    xorps xmm0, xmm0
200    ret    ret
201    .endfunc
202    
203    
204  ALIGN 16  ALIGN 16
# Line 191  Line 206 
206  sse2_os_trigger:  sse2_os_trigger:
207    xorpd xmm0, xmm0    xorpd xmm0, xmm0
208    ret    ret
209    .endfunc
210    
211    
212  ; enter/exit mmx state  ; enter/exit mmx state
# Line 199  Line 215 
215  emms_mmx:  emms_mmx:
216    emms    emms
217    ret    ret
218    .endfunc
219    
220  ; faster enter/exit mmx state  ; faster enter/exit mmx state
221  ALIGN 16  ALIGN 16
# Line 206  Line 223 
223  emms_3dn:  emms_3dn:
224    femms    femms
225    ret    ret
226    .endfunc
227    
228    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.9

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4