You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.0 KiB

/*
* Copyright 2002-2019 Intel Corporation.
*
* This software is provided to you as Sample Source Code as defined in the accompanying
* End User License Agreement for the Intel(R) Software Development Products ("Agreement")
* section 1.L.
*
* This software and the related documents are provided as is, with no express or implied
* warranties, other than those that are expressly stated in the License.
*/
.text
.align 4
#ifdef TARGET_MAC
.globl _ProcessorSupportsAvx;
_ProcessorSupportsAvx:
#else
.globl ProcessorSupportsAvx;
ProcessorSupportsAvx:
#endif
push %rbp
mov %rsp, %rbp
push %rax
push %rbx
push %rcx
push %rdx
push %rsi
mov $1, %rax
cpuid
and $0x018000000, %ecx
cmp $0x018000000, %ecx
jne .lNOT_SUPPORTED
mov $0, %ecx
# command name
.byte 0x0F, 0x01, 0xD0
and $6, %eax
cmp $6, %eax
jne .lNOT_SUPPORTED
mov $1, %rax
jmp .lDONE3
.lNOT_SUPPORTED:
mov $0, %rax
.lDONE3:
pop %rsi
pop %rdx
pop %rcx
pop %rbx
mov %rbp, %rsp
pop %rbp
ret