53 lines
859 B
NASM
53 lines
859 B
NASM
; vim: set ts=4 sw=4 tw=99 noet ft=nasm:
|
|
;
|
|
; AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
|
|
; Copyright (C) The AMX Mod X Development Team.
|
|
;
|
|
; This software is licensed under the GNU General Public License, version 3 or higher.
|
|
; Additional exceptions apply. For full license details, see LICENSE.txt or visit:
|
|
; https://alliedmods.net/amxmodx-license
|
|
|
|
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
|