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

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

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

revision 1.1, Wed Jan 5 23:02:15 2005 UTC revision 1.2, Thu Mar 8 21:40:19 2007 UTC
# Line 52  Line 52 
52  %define CPUID_MMX               0x00800000  %define CPUID_MMX               0x00800000
53  %define CPUID_SSE               0x02000000  %define CPUID_SSE               0x02000000
54  %define CPUID_SSE2              0x04000000  %define CPUID_SSE2              0x04000000
55    %define CPUID_SSE3              0x00000001
56    
57  %define EXT_CPUID_3DNOW         0x80000000  %define EXT_CPUID_3DNOW         0x80000000
58  %define EXT_CPUID_AMD_3DNOWEXT  0x40000000  %define EXT_CPUID_AMD_3DNOWEXT  0x40000000
# Line 62  Line 63 
63  %define XVID_CPU_MMXEXT   (1<< 1)  %define XVID_CPU_MMXEXT   (1<< 1)
64  %define XVID_CPU_SSE      (1<< 2)  %define XVID_CPU_SSE      (1<< 2)
65  %define XVID_CPU_SSE2     (1<< 3)  %define XVID_CPU_SSE2     (1<< 3)
66    %define XVID_CPU_SSE3     (1<< 8)
67  %define XVID_CPU_3DNOW    (1<< 4)  %define XVID_CPU_3DNOW    (1<< 4)
68  %define XVID_CPU_3DNOWEXT (1<< 5)  %define XVID_CPU_3DNOWEXT (1<< 5)
69  %define XVID_CPU_TSC      (1<< 6)  %define XVID_CPU_TSC      (1<< 6)
# Line 84  Line 86 
86  ; Macros  ; Macros
87  ;=============================================================================  ;=============================================================================
88    
89  %macro  CHECK_FEATURE 3  %macro  CHECK_FEATURE 4
90    mov rcx, %1    mov rax, %1
91    and rcx, rdx    and rax, %4
92    neg rcx    neg rax
93    sbb rcx, rcx    sbb rax, rax
94    and rcx, %2    and rax, %2
95    or %3, rcx    or %3, rax
96  %endmacro  %endmacro
97    
98  ;=============================================================================  ;=============================================================================
# Line 132  Line 134 
134    cpuid    cpuid
135    
136   ; RDTSC command ?   ; RDTSC command ?
137    CHECK_FEATURE CPUID_TSC, XVID_CPU_TSC, rbp    CHECK_FEATURE CPUID_TSC, XVID_CPU_TSC, rbp, rdx
138    
139    ; MMX support ?    ; MMX support ?
140    CHECK_FEATURE CPUID_MMX, XVID_CPU_MMX, rbp    CHECK_FEATURE CPUID_MMX, XVID_CPU_MMX, rbp, rdx
141    
142    ; SSE support ?    ; SSE support ?
143    CHECK_FEATURE CPUID_SSE, (XVID_CPU_MMXEXT|XVID_CPU_SSE), rbp    CHECK_FEATURE CPUID_SSE, (XVID_CPU_MMXEXT|XVID_CPU_SSE), rbp, rdx
144    
145    ; SSE2 support?    ; SSE2 support?
146    CHECK_FEATURE CPUID_SSE2, XVID_CPU_SSE2, rbp    CHECK_FEATURE CPUID_SSE2, XVID_CPU_SSE2, rbp, rdx
147    
148      ; SSE3 support?
149      CHECK_FEATURE CPUID_SSE3, XVID_CPU_SSE3, rbp, rcx
150    
151    ; extended functions?    ; extended functions?
152    mov rax, 0x80000000    mov rax, 0x80000000
# Line 161  Line 166 
166    jnz .cpu_quit    jnz .cpu_quit
167    
168    ; 3DNow! support ?    ; 3DNow! support ?
169    CHECK_FEATURE EXT_CPUID_3DNOW, XVID_CPU_3DNOW, rbp    CHECK_FEATURE EXT_CPUID_3DNOW, XVID_CPU_3DNOW, rbp, rdx
170    
171    ; 3DNOW extended ?    ; 3DNOW extended ?
172    CHECK_FEATURE EXT_CPUID_AMD_3DNOWEXT, XVID_CPU_3DNOWEXT, rbp    CHECK_FEATURE EXT_CPUID_AMD_3DNOWEXT, XVID_CPU_3DNOWEXT, rbp, rdx
173    
174    ; extended MMX ?    ; extended MMX ?
175    CHECK_FEATURE EXT_CPUID_AMD_MMXEXT, XVID_CPU_MMXEXT, rbp    CHECK_FEATURE EXT_CPUID_AMD_MMXEXT, XVID_CPU_MMXEXT, rbp, rdx
176    
177  .cpu_quit:  .cpu_quit:
178    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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