FEX/unittests/ASM/H0F38/66_F1_3.asm
Ryan Houdek f1979c15a2 unittests: Adds new CRC32 unittests
The instruction decode tables for crc32 introduced some dumb.
`F2h` and `F2h && 66h` prefixes both work for crc32.
This is a failure on Intel's part for sticking crc32 in to the vector
table.

MOVBE without any prefixes also does the same garbage where prefix `66h`
acts as an operand prefix size ONLY.
2022-02-03 21:11:50 -08:00

37 lines
636 B
NASM

%ifdef CONFIG
{
"RegData": {
"RAX": "0x000000005c3bc5b0",
"RBX": "0x000000001dd5b1e5",
"RCX": "0x0000000015d1c92d"
}
}
%endif
mov rax, 0x41424344454647
mov rbx, 0x51525354555657
mov rcx, 0x61626364656667
mov rdx, 0x71727374757677
; crc32 rax, rbx
db 0x66 ; Override, Should be ignored
db 0xf2 ; Prefix
db 0x48 ; REX.W
db 0x0f, 0x38, 0xf1, 0xc3
; crc32 rbx, rcx
db 0xf2 ; Prefix
db 0x66 ; Override, Should be ignored
db 0x48 ; REX.W
db 0x0f, 0x38, 0xf1, 0xd9
; crc32 rcx, rdx
db 0x66 ; Override, Should be ignored
db 0xf2 ; Prefix
db 0x66 ; Override, Should be ignored
db 0x48 ; REX.W
db 0x0f, 0x38, 0xf1, 0xca
hlt