diff --git a/assets/instructions.json b/assets/instructions.json index befb6c9..8fb0ccf 100644 --- a/assets/instructions.json +++ b/assets/instructions.json @@ -6464,6 +6464,10 @@ "operand2": { "type": "mem32", "encoding": "modrm_rm" + }, + "operand3": { + "type": "imm32", + "encoding": "imm32" } }, "implicit_write": [ @@ -6542,6 +6546,10 @@ "operand2": { "type": "mem64", "encoding": "modrm_rm" + }, + "operand3": { + "type": "imm64", + "encoding": "imm32" } }, "implicit_write": [ @@ -6617,6 +6625,10 @@ "operand2": { "type": "gpr32", "encoding": "modrm_rm" + }, + "operand3": { + "type": "imm32", + "encoding": "imm32" } }, "implicit_write": [ @@ -6695,6 +6707,10 @@ "operand2": { "type": "gpr64", "encoding": "modrm_rm" + }, + "operand3": { + "type": "imm64", + "encoding": "imm32" } }, "implicit_write": [ @@ -8765,6 +8781,7 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "f3", "modrm_mod": "memory" }, @@ -8793,11 +8810,9 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "require64", "prefix": "f3", - "modrm_mod": "memory", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "memory" }, "cpuid": [ "mpx" @@ -8824,6 +8839,7 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "f3", "modrm_mod": "register" }, @@ -8852,11 +8868,9 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "require64", "prefix": "f3", - "modrm_mod": "register", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "register" }, "cpuid": [ "mpx" @@ -8883,6 +8897,7 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "f2", "modrm_mod": "memory" }, @@ -8908,11 +8923,9 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "require64", "prefix": "f2", - "modrm_mod": "memory", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "memory" }, "cpuid": [ "mpx" @@ -8989,6 +9002,7 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "f2", "modrm_mod": "memory" }, @@ -9017,11 +9031,9 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "require64", "prefix": "f2", - "modrm_mod": "memory", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "memory" }, "cpuid": [ "mpx" @@ -9048,6 +9060,7 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "f2", "modrm_mod": "register" }, @@ -9076,11 +9089,9 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "require64", "prefix": "f2", - "modrm_mod": "register", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "register" }, "cpuid": [ "mpx" @@ -9107,6 +9118,38 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", + "modrm_mod": "memory" + }, + "cpuid": [ + "mpx" + ], + "operands": { + "operand1": { + "type": "bndr", + "encoding": "modrm_reg", + "accessmode": "write" + }, + "operand2": { + "type": "mem64", + "encoding": "modrm_rm" + } + }, + "implicit_read": [ + "bndcfg" + ], + "implicit_write": [ + "bndstatus" + ], + "comment": "bndldx $BNDR, $i64mem (BNDLDXrm)", + "cd8scale": 0 + }, + { + "mnemonic": "bndldx", + "opcode": "1a", + "map": "0f", + "extensions": { + "mode": "require64", "modrm_mod": "memory" }, "cpuid": [ @@ -9137,6 +9180,7 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "f3", "modrm_mod": "memory" }, @@ -9162,11 +9206,9 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "require64", "prefix": "f3", - "modrm_mod": "memory", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "memory" }, "cpuid": [ "mpx" @@ -9190,6 +9232,7 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "66", "modrm_mod": "memory" }, @@ -9215,11 +9258,9 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "require64", "prefix": "66", - "modrm_mod": "memory", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "memory" }, "cpuid": [ "mpx" @@ -9243,6 +9284,33 @@ "opcode": "1a", "map": "0f", "extensions": { + "mode": "exclude64", + "prefix": "66", + "modrm_mod": "register" + }, + "cpuid": [ + "mpx" + ], + "operands": { + "operand1": { + "type": "bndr", + "encoding": "modrm_reg", + "accessmode": "write" + }, + "operand2": { + "type": "bndr", + "encoding": "modrm_rm" + } + }, + "comment": "bndmov $BNDR, $BNDR (BNDMOVRMrr)", + "cd8scale": 0 + }, + { + "mnemonic": "bndmov", + "opcode": "1a", + "map": "0f", + "extensions": { + "mode": "require64", "prefix": "66", "modrm_mod": "register" }, @@ -9268,6 +9336,7 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "exclude64", "prefix": "66", "modrm_mod": "memory" }, @@ -9293,11 +9362,9 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "require64", "prefix": "66", - "modrm_mod": "memory", - "bitfilters": [ - "rex_w" - ] + "modrm_mod": "memory" }, "cpuid": [ "mpx" @@ -9346,6 +9413,38 @@ "opcode": "1b", "map": "0f", "extensions": { + "mode": "exclude64", + "modrm_mod": "memory" + }, + "cpuid": [ + "mpx" + ], + "operands": { + "operand1": { + "type": "mem64", + "encoding": "modrm_rm", + "accessmode": "write" + }, + "operand2": { + "type": "bndr", + "encoding": "modrm_reg" + } + }, + "implicit_read": [ + "bndcfg" + ], + "implicit_write": [ + "bndstatus" + ], + "comment": "bni64memx $i64mem, $BNDR (BNDSTXmr)", + "cd8scale": 0 + }, + { + "mnemonic": "bndstx", + "opcode": "1b", + "map": "0f", + "extensions": { + "mode": "require64", "modrm_mod": "memory" }, "cpuid": [