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

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

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

revision 1586, Wed Jan 5 23:02:15 2005 UTC revision 1771, Thu Mar 8 21:40:19 2007 UTC
# Line 20  Line 20 
20  ; *  along with this program ; if not, write to the Free Software  ; *  along with this program ; if not, write to the Free Software
21  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA  ; *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22  ; *  ; *
23  ; * $Id: cpuid.asm,v 1.1 2005-01-05 23:02:15 edgomez Exp $  ; * $Id: cpuid.asm,v 1.2 2007-03-08 21:40:19 Isibaar Exp $
24  ; *  ; *
25  ; ***************************************************************************/  ; ***************************************************************************/
26    
# 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.1586  
changed lines
  Added in v.1771

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