52 lines
787 B
NASM
52 lines
787 B
NASM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; (C)2006 by David "BAILOPAN" Anderson ;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
;;Licensed under the GNU General Public License, version 2
|
|
;;This is a portion of AMX Mod X
|
|
;; and is maintained by the AMX Mod X development team.
|
|
|
|
section .text
|
|
|
|
global amxx_CpuSupport, _amxx_CpuSupport
|
|
|
|
amxx_CpuSupport:
|
|
_amxx_CpuSupport:
|
|
push ebp
|
|
mov ebp, esp
|
|
|
|
push ebx
|
|
|
|
mov eax, 0
|
|
cpuid
|
|
cmp eax, 1
|
|
jl .fail
|
|
|
|
mov eax, 1
|
|
cpuid
|
|
;check if family == 5 or 4
|
|
and eax, 0780h ;family mask
|
|
shr eax, 7 ;family shift
|
|
cmp eax, 5
|
|
je .fail
|
|
cmp eax, 4
|
|
je .fail
|
|
;check if CMOV exists
|
|
shr edx, 15
|
|
and edx, 1
|
|
cmp edx, 0
|
|
je .fail
|
|
|
|
mov eax, 1
|
|
jmp .end
|
|
|
|
.fail:
|
|
xor eax, eax
|
|
|
|
.end:
|
|
|
|
pop ebx
|
|
|
|
pop ebp
|
|
ret
|