Remove modrm prefix

This commit is contained in:
0xd4d 2020-10-31 16:50:44 +01:00
parent e79a13c84c
commit 5f388f5545
2 changed files with 74 additions and 74 deletions

View File

@ -50,19 +50,19 @@ imm32, imm=32;32,
imm32sex64, imm=32;64,
imm64, imm=64;64,
al, register=al,
cl, register=cl,
ax, register=ax,
dx, register=dx,
eax, register=eax,
rax, register=rax,
st0, register=st0,
es, register=es,
cs, register=cs,
ss, register=ss,
ds, register=ds,
fs, register=fs,
gs, register=gs,
al, imp-reg=al,
cl, imp-reg=cl,
ax, imp-reg=ax,
dx, imp-reg=dx,
eax, imp-reg=eax,
rax, imp-reg=rax,
st0, imp-reg=st0,
es, imp-reg=es,
cs, imp-reg=cs,
ss, imp-reg=ss,
ds, imp-reg=ds,
fs, imp-reg=fs,
gs, imp-reg=gs,
seg_rBX_al, seg-rbx-al,
seg_rDI, seg-rdi,
@ -80,35 +80,35 @@ r32_opcode, opcode=eax,
r64_opcode, opcode=rax,
sti_opcode, opcode=st0,
bnd_reg, modrm.reg=bnd0,
cr_reg, modrm.reg=cr0, lock-bit
dr_reg, modrm.reg=dr0,
k_reg, modrm.reg=k0,
kp1_reg, modrm.reg=k0, p1
mm_reg, modrm.reg=mm0,
r8_reg, modrm.reg=al,
r16_reg, modrm.reg=ax,
r16_reg_mem, modrm.reg=ax, mem
r32_reg, modrm.reg=eax,
r32_reg_mem, modrm.reg=eax, mem
r64_reg, modrm.reg=rax,
r64_reg_mem, modrm.reg=rax, mem
seg_reg, modrm.reg=es,
tmm_reg, modrm.reg=tmm0,
tr_reg, modrm.reg=tr0,
xmm_reg, modrm.reg=xmm0,
ymm_reg, modrm.reg=ymm0,
zmm_reg, modrm.reg=zmm0,
bnd_reg, reg=bnd0,
cr_reg, reg=cr0, lock-bit
dr_reg, reg=dr0,
k_reg, reg=k0,
kp1_reg, reg=k0, p1
mm_reg, reg=mm0,
r8_reg, reg=al,
r16_reg, reg=ax,
r16_reg_mem, reg=ax, mem
r32_reg, reg=eax,
r32_reg_mem, reg=eax, mem
r64_reg, reg=rax,
r64_reg_mem, reg=rax, mem
seg_reg, reg=es,
tmm_reg, reg=tmm0,
tr_reg, reg=tr0,
xmm_reg, reg=xmm0,
ymm_reg, reg=ymm0,
zmm_reg, reg=zmm0,
k_rm, modrm.rm-reg-only=k0,
mm_rm, modrm.rm-reg-only=mm0,
r16_rm, modrm.rm-reg-only=ax,
r32_rm, modrm.rm-reg-only=eax,
r64_rm, modrm.rm-reg-only=rax,
tmm_rm, modrm.rm-reg-only=tmm0,
xmm_rm, modrm.rm-reg-only=xmm0,
ymm_rm, modrm.rm-reg-only=ymm0,
zmm_rm, modrm.rm-reg-only=zmm0,
k_rm, rm-reg=k0,
mm_rm, rm-reg=mm0,
r16_rm, rm-reg=ax,
r32_rm, rm-reg=eax,
r64_rm, rm-reg=rax,
tmm_rm, rm-reg=tmm0,
xmm_rm, rm-reg=xmm0,
ymm_rm, rm-reg=ymm0,
zmm_rm, rm-reg=zmm0,
k_vvvv, vvvv=k0,
r32_vvvv, vvvv=eax,
@ -120,29 +120,29 @@ ymm_vvvv, vvvv=ymm0,
zmm_vvvv, vvvv=zmm0,
zmmp3_vvvv, vvvv=zmm0, p3
bnd_or_mem_mpx, modrm.rm=bnd0, mpx
k_or_mem, modrm.rm=k0,
mm_or_mem, modrm.rm=mm0,
r8_or_mem, modrm.rm=al,
r16_or_mem, modrm.rm=ax,
r32_or_mem, modrm.rm=eax,
r32_or_mem_mpx, modrm.rm=eax, mpx
r64_or_mem, modrm.rm=rax,
r64_or_mem_mpx, modrm.rm=rax, mpx
xmm_or_mem, modrm.rm=xmm0,
ymm_or_mem, modrm.rm=ymm0,
zmm_or_mem, modrm.rm=zmm0,
bnd_or_mem_mpx, rm=bnd0, mpx
k_or_mem, rm=k0,
mm_or_mem, rm=mm0,
r8_or_mem, rm=al,
r16_or_mem, rm=ax,
r32_or_mem, rm=eax,
r32_or_mem_mpx, rm=eax, mpx
r64_or_mem, rm=rax,
r64_or_mem_mpx, rm=rax, mpx
xmm_or_mem, rm=xmm0,
ymm_or_mem, rm=ymm0,
zmm_or_mem, rm=zmm0,
mem, modrm.mem,
mem_mib, modrm.mem, mib
mem_mpx, modrm.mem, mpx
sibmem, modrm.mem, sib
mem, rm-mem,
mem_mib, rm-mem, mib
mem_mpx, rm-mem, mpx
sibmem, rm-mem, sib
mem_vsib32x, modrm.vsib=xmm0;32,
mem_vsib32y, modrm.vsib=ymm0;32,
mem_vsib32z, modrm.vsib=zmm0;32,
mem_vsib64x, modrm.vsib=xmm0;64,
mem_vsib64y, modrm.vsib=ymm0;64,
mem_vsib64z, modrm.vsib=zmm0;64,
mem_vsib32x, vsib=xmm0;32,
mem_vsib32y, vsib=ymm0;32,
mem_vsib32z, vsib=zmm0;32,
mem_vsib64x, vsib=xmm0;64,
mem_vsib64y, vsib=ymm0;64,
mem_vsib64z, vsib=zmm0;64,
mem_offs, moffs,

View File

@ -53,14 +53,14 @@ namespace Generator.Tables {
{ "br-far", 1 },
{ "imm8-const", 1 },
{ "imm", 2 },
{ "register", 1 },
{ "imp-reg", 1 },
{ "isx", 2 },
{ "opcode", 1 },
{ "modrm.reg", 1 },
{ "modrm.rm-reg-only", 1 },
{ "reg", 1 },
{ "rm-reg", 1 },
{ "vvvv", 1 },
{ "modrm.rm", 1 },
{ "modrm.vsib", 2 },
{ "rm", 1 },
{ "vsib", 2 },
};
var lines = File.ReadAllLines(filename);
@ -141,7 +141,7 @@ namespace Generator.Tables {
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.Immediate, arg1, arg2, Register.None);
break;
case "register":
case "imp-reg":
register = (Register)toRegister[args[0]].Value;
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.ImpliedRegister, 0, 0, register);
break;
@ -181,13 +181,13 @@ namespace Generator.Tables {
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.RegOpCode, 0, 0, register);
break;
case "modrm.reg":
case "reg":
flags |= OpCodeOperandKindDefFlags.Modrm;
register = (Register)toRegister[args[0]].Value;
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.RegModrmReg, 0, 0, register);
break;
case "modrm.rm-reg-only":
case "rm-reg":
flags |= OpCodeOperandKindDefFlags.Modrm;
register = (Register)toRegister[args[0]].Value;
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.RegModrmRm, 0, 0, register);
@ -198,20 +198,20 @@ namespace Generator.Tables {
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.RegVvvvv, 0, 0, register);
break;
case "modrm.rm":
case "rm":
flags |= OpCodeOperandKindDefFlags.Modrm;
flags |= OpCodeOperandKindDefFlags.Memory;
register = (Register)toRegister[args[0]].Value;
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.RegMemModrmRm, 0, 0, register);
break;
case "modrm.mem":
case "rm-mem":
flags |= OpCodeOperandKindDefFlags.Modrm;
flags |= OpCodeOperandKindDefFlags.Memory;
def = new OpCodeOperandKindDef(enumValue, flags, OperandEncoding.MemModrmRm, 0, 0, Register.None);
break;
case "modrm.vsib":
case "vsib":
flags |= OpCodeOperandKindDefFlags.Modrm;
flags |= OpCodeOperandKindDefFlags.Memory;
register = (Register)toRegister[args[0]].Value;