;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; (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
