aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-07-21 08:57:24 +0200
committerJan Beulich <jbeulich@suse.com>2023-07-21 08:57:24 +0200
commit178e197078e105ba4fc1b40a0bb6d7384098128e (patch)
tree396bdbd85ef02e8a680bade165d65ffd3e0cc25c /opcodes
parentc54748b2fae98907b3f86fd2a3b6b46249759ceb (diff)
downloadgdb-178e197078e105ba4fc1b40a0bb6d7384098128e.zip
gdb-178e197078e105ba4fc1b40a0bb6d7384098128e.tar.gz
gdb-178e197078e105ba4fc1b40a0bb6d7384098128e.tar.bz2
x86: adjust disassembly of insns operating on selector values
Bring disassembly back in line with what the assembler accepts, thus also making it self-consistent (with, in particular selector load/store insns). While there further add D to all affected insns except ARPL (where S is used, matching LAR/LSL), to also behave correctly in suffix- always mode. While there also hook up the Intel variant of the LKGS test.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/i386-dis.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 179612f..beabe4a 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -2625,10 +2625,10 @@ static const struct dis386 reg_table[][8] = {
{
{ "sldtD", { Sv }, 0 },
{ "strD", { Sv }, 0 },
- { "lldt", { Ew }, 0 },
- { "ltr", { Ew }, 0 },
- { "verr", { Ew }, 0 },
- { "verw", { Ew }, 0 },
+ { "lldtD", { Sv }, 0 },
+ { "ltrD", { Sv }, 0 },
+ { "verrD", { Sv }, 0 },
+ { "verwD", { Sv }, 0 },
{ X86_64_TABLE (X86_64_0F00_REG_6) },
{ Bad_Opcode },
},
@@ -2875,7 +2875,7 @@ static const struct dis386 prefix_table[][4] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { "lkgs", { Ew }, 0 },
+ { "lkgsD", { Sv }, 0 },
},
/* PREFIX_0F01_REG_0_MOD_3_RM_6 */
@@ -4017,7 +4017,7 @@ static const struct dis386 x86_64_table[][2] = {
/* X86_64_63 */
{
- { "arpl", { Ew, Gw }, 0 },
+ { "arplS", { Sv, Gv }, 0 },
{ "movs", { Gv, { MOVSXD_Fixup, movsxd_mode } }, 0 },
},