From 1924112d7d68f6dcaeeebc20eaf33b25ffb7dd33 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 11 Apr 2020 14:00:20 +0200 Subject: [PATCH] LibX86: Tolerate invalid segment register indices when disassembling While #6 and #7 are not valid segment register, they can still be encoded in otherwise-valid instructions, so let's tolerate it. --- Libraries/LibX86/Instruction.cpp | 4 ++++ Libraries/LibX86/Instruction.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/Libraries/LibX86/Instruction.cpp b/Libraries/LibX86/Instruction.cpp index e4ae2367f5..68cca330ea 100644 --- a/Libraries/LibX86/Instruction.cpp +++ b/Libraries/LibX86/Instruction.cpp @@ -1760,6 +1760,10 @@ const char* register_name(SegmentRegister index) return "fs"; case SegmentRegister::GS: return "gs"; + case SegmentRegister::SegR6: + return "segr6"; + case SegmentRegister::SegR7: + return "segr7"; default: ASSERT_NOT_REACHED(); return nullptr; diff --git a/Libraries/LibX86/Instruction.h b/Libraries/LibX86/Instruction.h index 7e65dbed53..b1bd8098ca 100644 --- a/Libraries/LibX86/Instruction.h +++ b/Libraries/LibX86/Instruction.h @@ -88,6 +88,8 @@ enum class SegmentRegister { DS, FS, GS, + SegR6, + SegR7, None = 0xFF, };