feat(asm): encode the remaining amd64 VEX families
The SSE3 horizontal and add-subtract pairs, the SSSE3 sign and horizontal integers, the masked moves in both directions, the reciprocity and test pairs, the AVX imm8 tail (blends, dot products, inserts, rounds, MPSADBW, the string compares), the four-operand variable blends with their /is4 mask byte, the scalar three-operand moves, the MXCSR accessors, the VPERMIL register controls and the variable word shifts, plus the BMI2 count forms over memory. Every encoding is pinned byte for byte against go tool asm through every corpus line the toolchain's own amd64enc.s carries for the families (852 lines); the /is4 byte carries the mask register number in its high nibble, the layout the toolchain emits. Assisted-by: GLM 5.3 Flash
This commit is contained in:
1 parent
6af3fd60d5
commit
cfc3abb752
4 files changed
+1096
-25
No files matched your search
@@ -76,6 +76,9 @@ var x86asmUnrecognised = map[string]bool{
|
||||
"SHLXQ": true,
|
||||
"SHRXL": true,
|
||||
"SHRXQ": true,
|
||||
// The register-only half move the decoder's AVX tables lack; its
|
||||
// bytes are pinned against go tool asm through the corpus test.
|
||||
"VMOVHLPS": true,
|
||||
}
|
||||
|
||||
// TestVexNDS3 encodes `mnem Y0, Y1, Y2` for every three-operand NDS
|
||||
|
||||
Reference in new issue
Block a user