Revision 29c3049c7b8fc54d8137c7e728bb3cbc4ad8c893 authored by Victor Dumitrescu on 04 March 2021, 18:13:16 UTC, committed by Victor Dumitrescu on 04 March 2021, 18:13:57 UTC
1 parent 44068e6
cpuid-x86_64-darwin.S
.text
.global _check_aesni
_check_aesni:
mov %rbx, %r9
mov $0, %rcx
mov $1, %rax
cpuid
mov %rcx, %rax
and $33554432, %rax
shr $24, %rax
and $2, %rcx
and %rcx, %rax
mov %r9, %rbx
ret
.global _check_sha
_check_sha:
mov %rbx, %r9
mov $7, %rax
mov $0, %rcx
cpuid
and $536870912, %rbx
mov %rbx, %rax
mov %r9, %rbx
ret
.global _check_adx_bmi2
_check_adx_bmi2:
mov %rbx, %r9
mov $7, %rax
mov $0, %rcx
cpuid
mov %rbx, %rax
and $524288, %rax
shr $11, %rax
and $256, %rbx
and %rbx, %rax
mov %r9, %rbx
ret
.global _check_avx
_check_avx:
mov %rbx, %r9
mov $0, %rcx
mov $1, %rax
cpuid
mov %rcx, %rax
and $268435456, %rax
shr $27, %rax
mov %r9, %rbx
ret
.global _check_avx2
_check_avx2:
mov %rbx, %r9
mov $7, %rax
mov $0, %rcx
cpuid
and $32, %rbx
mov %rbx, %rax
mov %r9, %rbx
ret
.global _check_movbe
_check_movbe:
mov %rbx, %r9
mov $0, %rcx
mov $1, %rax
cpuid
mov %rcx, %rax
and $4194304, %rax
shr $21, %rax
mov %r9, %rbx
ret
.global _check_sse
_check_sse:
mov %rbx, %r9
mov $0, %rcx
mov $1, %rax
cpuid
mov %rcx, %rax
and $524288, %rax
and $512, %rcx
and $67108864, %rdx
shr $10, %rax
shr $17, %rdx
and %rdx, %rax
and %rcx, %rax
mov %r9, %rbx
ret
.global _check_rdrand
_check_rdrand:
mov %rbx, %r9
mov $0, %rcx
mov $1, %rax
cpuid
mov %rcx, %rax
and $1073741824, %rax
shr $29, %rax
mov %r9, %rbx
ret
.global _check_avx512
_check_avx512:
mov %rbx, %r9
mov $7, %rax
mov $0, %rcx
cpuid
mov %rbx, %rax
mov %rbx, %r10
mov %rbx, %r11
and $65536, %rbx
and $131072, %rax
and $1073741824, %r10
shr $1, %rax
shr $14, %r10
and %rbx, %rax
mov $2147483648, %rbx
and %rbx, %r11
shr $15, %r11
and %r10, %rax
and %r11, %rax
mov %r9, %rbx
ret
.global _check_osxsave
_check_osxsave:
mov %rbx, %r9
mov $0, %rcx
mov $1, %rax
cpuid
mov %rcx, %rax
and $134217728, %rax
shr $26, %rax
mov %r9, %rbx
ret
.global _check_avx_xcr0
_check_avx_xcr0:
mov $0, %rcx
xgetbv
mov %rax, %rcx
and $4, %rax
shr $1, %rax
and $2, %rcx
and %rcx, %rax
ret
.global _check_avx512_xcr0
_check_avx512_xcr0:
mov $0, %rcx
xgetbv
mov %rax, %rcx
mov %rax, %rdx
and $32, %rax
and $64, %rcx
and $128, %rdx
shr $2, %rdx
shr $1, %rcx
and %rdx, %rax
and %rcx, %rax
ret
Computing file changes ...