mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-01-10 07:41:41 +00:00
f1979c15a2
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.
37 lines
636 B
NASM
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
|