add 8 bit opcode support

This commit is contained in:
andromeda
2026-03-31 22:20:30 +02:00
parent ad9be1029c
commit 395c42dff4
4 changed files with 122 additions and 27 deletions

View File

@@ -272,33 +272,47 @@ entries are as follows:
+----------+---------------+----------------------------------+
16 bytes
+----------------------------------------------+
| 2 operand operators |
+----------------------------------------------+
| 127 96 |
+----------------------------------------------+
| reserved |
+-------------------+-------+-------+----------+
| 95 80 | 79 76 | 75 72 | 71 64 |
+-------------------+-------+-------+----------+
| reserved | op3&8 | op2&8 | reserved |
+-------------------+-------+-------+----------+
| 63 48 | 47 40 | 39 32 |
+-------------------+---------------+----------+
| reserved | opcode | opcode |
| | dst=r/m | dst=r/m |
| | src=imm8 | src=imm |
+---------+---------+---------------+----------+
| 31 24 | 23 16 | 15 0 |
+---------+---------+--------------------------+
| opcode | opcode | token ID |
| dst=r | dst=r/m | |
| src=r/m | src=r | |
+---------+---------+--------------------------+
+-----------------------------------------------+
| 2 operand operators |
+-----------------------------------------------+
| 127 96 |
+-----------------------------------------------+
| reserved |
+---------+----------+-------+-------+----------+
| 95 88 | 87 80 | 79 76 | 75 72 | 71 64 |
+---------+----------+-------+-------+----------+
| flags | reserved | op3&8 | op2&8 | reserved |
+---------+----------+-------+-------+----------+
| 63 48 | 47 40 | 39 32 |
+--------------------+---------------+----------+
| reserved | opcode | opcode |
| | dst=r/m | dst=r/m |
| | src=imm8 | src=imm |
+---------+----------+---------------+----------+
| 31 24 | 23 16 | 15 0 |
+---------+----------+--------------------------+
| opcode | opcode | token ID |
| dst=r | dst=r/m | |
| src=r/m | src=r | |
+---------+----------+--------------------------+
1 byte
+-----------------+
| flags byte |
+----------+------+
| 95 89 | 88 |
+----------+------+
| reserved | 8bit |
+----------+------+
; flags key:
8bit ; tte has opcodes for r/m8 and r8 instead of r/m and r respectively
; key:
r/m ; r/m 16/32/64
r/m8 ; r/m 8
r ; r 16/32/64
r8 ; r 8
imm ; imm 16/32
imm8 ; imm 8
rel ; rel 16/32