[Lldb-commits] [lldb] b2c906d - Revert "[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo"

Michael Forster via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 6 09:24:49 PDT 2021


Author: Michael Forster
Date: 2021-10-06T18:15:25+02:00
New Revision: b2c906da19a74fe93baff7c52eafa02b6613b473

URL: https://github.com/llvm/llvm-project/commit/b2c906da19a74fe93baff7c52eafa02b6613b473
DIFF: https://github.com/llvm/llvm-project/commit/b2c906da19a74fe93baff7c52eafa02b6613b473.diff

LOG: Revert "[lldb] Remove "dwarf dynamic register size expressions" from RegisterInfo"

This reverts commit 00e704bf080ffeeb9e334fb3ab71594f9aa50969.

This commit should should have updated
llvm/llvm-project/lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp like the other
architectures.

Added: 
    

Modified: 
    lldb/include/lldb/Target/DynamicRegisterInfo.h
    lldb/include/lldb/Target/RegisterContext.h
    lldb/include/lldb/lldb-private-types.h
    lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
    lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
    lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp
    lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
    lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
    lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
    lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
    lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp
    lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp
    lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp
    lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_arm64_sve.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h
    lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h
    lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
    lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp
    lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp
    lldb/source/Target/DynamicRegisterInfo.cpp
    lldb/source/Target/RegisterContext.cpp
    lldb/unittests/Target/DynamicRegisterInfoTest.cpp
    lldb/unittests/tools/lldb-server/tests/MessageObjects.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/include/lldb/Target/DynamicRegisterInfo.h b/lldb/include/lldb/Target/DynamicRegisterInfo.h
index 5cbafe000e0b..ac8d6a7781c3 100644
--- a/lldb/include/lldb/Target/DynamicRegisterInfo.h
+++ b/lldb/include/lldb/Target/DynamicRegisterInfo.h
@@ -108,6 +108,7 @@ class DynamicRegisterInfo {
   name_collection m_set_names;
   reg_to_regs_map m_value_regs_map;
   reg_to_regs_map m_invalidate_regs_map;
+  dynamic_reg_size_map m_dynamic_reg_size_map;
   size_t m_reg_data_byte_size = 0u; // The number of bytes required to store
                                     // all registers
   bool m_finalized = false;

diff  --git a/lldb/include/lldb/Target/RegisterContext.h b/lldb/include/lldb/Target/RegisterContext.h
index 392b462ecf07..c5068feedd5b 100644
--- a/lldb/include/lldb/Target/RegisterContext.h
+++ b/lldb/include/lldb/Target/RegisterContext.h
@@ -31,6 +31,10 @@ class RegisterContext : public std::enable_shared_from_this<RegisterContext>,
 
   virtual const RegisterInfo *GetRegisterInfoAtIndex(size_t reg) = 0;
 
+  // Detect the register size dynamically.
+  uint32_t UpdateDynamicRegisterSize(const lldb_private::ArchSpec &arch,
+                                     RegisterInfo *reg_info);
+
   virtual size_t GetRegisterSetCount() = 0;
 
   virtual const RegisterSet *GetRegisterSet(size_t reg_set) = 0;

diff  --git a/lldb/include/lldb/lldb-private-types.h b/lldb/include/lldb/lldb-private-types.h
index 5e71b68630a9..73d618d7069c 100644
--- a/lldb/include/lldb/lldb-private-types.h
+++ b/lldb/include/lldb/lldb-private-types.h
@@ -58,6 +58,12 @@ struct RegisterInfo {
   /// this register changes. For example, the invalidate list for eax would be
   /// rax ax, ah, and al.
   uint32_t *invalidate_regs;
+  /// A DWARF expression that when evaluated gives the byte size of this
+  /// register.
+  const uint8_t *dynamic_size_dwarf_expr_bytes;
+  /// The length of the DWARF expression in bytes in the
+  /// dynamic_size_dwarf_expr_bytes member.
+  size_t dynamic_size_dwarf_len;
 
   llvm::ArrayRef<uint8_t> data(const uint8_t *context_base) const {
     return llvm::ArrayRef<uint8_t>(context_base + byte_offset, byte_size);

diff  --git a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
index 93939800cd69..f0b953ad0e8d 100644
--- a/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
+++ b/lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
@@ -51,7 +51,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r1",
      nullptr,
      4,
@@ -62,7 +63,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r2",
      nullptr,
      4,
@@ -73,7 +75,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r3",
      nullptr,
      4,
@@ -84,7 +87,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r4",
      nullptr,
      4,
@@ -95,7 +99,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r5",
      nullptr,
      4,
@@ -106,7 +111,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r6",
      nullptr,
      4,
@@ -117,7 +123,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r7",
      nullptr,
      4,
@@ -128,7 +135,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8",
      nullptr,
      4,
@@ -139,7 +147,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9",
      nullptr,
      4,
@@ -150,7 +159,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      nullptr,
      4,
@@ -161,7 +171,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      nullptr,
      4,
@@ -172,7 +183,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      nullptr,
      4,
@@ -183,7 +195,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sp",
      "r13",
      4,
@@ -194,7 +207,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "r14",
      4,
@@ -205,7 +219,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      "r15",
      4,
@@ -216,7 +231,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cpsr",
      "psr",
      4,
@@ -227,7 +243,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s0",
      nullptr,
      4,
@@ -238,7 +255,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s1",
      nullptr,
      4,
@@ -249,7 +267,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s2",
      nullptr,
      4,
@@ -260,7 +279,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s3",
      nullptr,
      4,
@@ -271,7 +291,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s4",
      nullptr,
      4,
@@ -282,7 +303,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s5",
      nullptr,
      4,
@@ -293,7 +315,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s6",
      nullptr,
      4,
@@ -304,7 +327,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s7",
      nullptr,
      4,
@@ -315,7 +339,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s8",
      nullptr,
      4,
@@ -326,7 +351,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s9",
      nullptr,
      4,
@@ -337,7 +363,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s10",
      nullptr,
      4,
@@ -348,7 +375,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s11",
      nullptr,
      4,
@@ -359,7 +387,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s12",
      nullptr,
      4,
@@ -370,7 +399,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s13",
      nullptr,
      4,
@@ -381,7 +411,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s14",
      nullptr,
      4,
@@ -392,7 +423,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s15",
      nullptr,
      4,
@@ -403,7 +435,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s16",
      nullptr,
      4,
@@ -414,7 +447,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s17",
      nullptr,
      4,
@@ -425,7 +459,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s18",
      nullptr,
      4,
@@ -436,7 +471,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s19",
      nullptr,
      4,
@@ -447,7 +483,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s20",
      nullptr,
      4,
@@ -458,7 +495,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s21",
      nullptr,
      4,
@@ -469,7 +507,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s22",
      nullptr,
      4,
@@ -480,7 +519,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s23",
      nullptr,
      4,
@@ -491,7 +531,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s24",
      nullptr,
      4,
@@ -502,7 +543,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s25",
      nullptr,
      4,
@@ -513,7 +555,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s26",
      nullptr,
      4,
@@ -524,7 +567,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s27",
      nullptr,
      4,
@@ -535,7 +579,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s28",
      nullptr,
      4,
@@ -546,7 +591,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s29",
      nullptr,
      4,
@@ -557,7 +603,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s30",
      nullptr,
      4,
@@ -568,7 +615,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s31",
      nullptr,
      4,
@@ -579,7 +627,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fpscr",
      nullptr,
      4,
@@ -590,7 +639,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d0",
      nullptr,
      8,
@@ -601,7 +651,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d1",
      nullptr,
      8,
@@ -612,7 +663,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d2",
      nullptr,
      8,
@@ -623,7 +675,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d3",
      nullptr,
      8,
@@ -634,7 +687,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d4",
      nullptr,
      8,
@@ -645,7 +699,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d5",
      nullptr,
      8,
@@ -656,7 +711,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d6",
      nullptr,
      8,
@@ -667,7 +723,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d7",
      nullptr,
      8,
@@ -678,7 +735,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d8",
      nullptr,
      8,
@@ -689,7 +747,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d9",
      nullptr,
      8,
@@ -700,7 +759,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d10",
      nullptr,
      8,
@@ -711,7 +771,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d11",
      nullptr,
      8,
@@ -722,7 +783,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d12",
      nullptr,
      8,
@@ -733,7 +795,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d13",
      nullptr,
      8,
@@ -744,7 +807,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d14",
      nullptr,
      8,
@@ -755,7 +819,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d15",
      nullptr,
      8,
@@ -766,7 +831,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d16",
      nullptr,
      8,
@@ -777,7 +843,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d17",
      nullptr,
      8,
@@ -788,7 +855,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d18",
      nullptr,
      8,
@@ -799,7 +867,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d19",
      nullptr,
      8,
@@ -810,7 +879,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d20",
      nullptr,
      8,
@@ -821,7 +891,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d21",
      nullptr,
      8,
@@ -832,7 +903,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d22",
      nullptr,
      8,
@@ -843,7 +915,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d23",
      nullptr,
      8,
@@ -854,7 +927,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d24",
      nullptr,
      8,
@@ -865,7 +939,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d25",
      nullptr,
      8,
@@ -876,7 +951,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d26",
      nullptr,
      8,
@@ -887,7 +963,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d27",
      nullptr,
      8,
@@ -898,7 +975,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d28",
      nullptr,
      8,
@@ -909,7 +987,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d29",
      nullptr,
      8,
@@ -920,7 +999,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d30",
      nullptr,
      8,
@@ -931,7 +1011,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d31",
      nullptr,
      8,
@@ -942,7 +1023,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8_usr",
      nullptr,
      4,
@@ -953,7 +1035,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9_usr",
      nullptr,
      4,
@@ -964,7 +1047,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10_usr",
      nullptr,
      4,
@@ -975,7 +1059,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11_usr",
      nullptr,
      4,
@@ -986,7 +1071,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12_usr",
      nullptr,
      4,
@@ -997,7 +1083,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_usr",
      "sp_usr",
      4,
@@ -1008,7 +1095,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_usr",
      "lr_usr",
      4,
@@ -1019,7 +1107,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8_fiq",
      nullptr,
      4,
@@ -1030,7 +1119,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9_fiq",
      nullptr,
      4,
@@ -1041,7 +1131,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10_fiq",
      nullptr,
      4,
@@ -1052,7 +1143,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11_fiq",
      nullptr,
      4,
@@ -1063,7 +1155,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12_fiq",
      nullptr,
      4,
@@ -1074,7 +1167,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_fiq",
      "sp_fiq",
      4,
@@ -1085,7 +1179,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_fiq",
      "lr_fiq",
      4,
@@ -1096,7 +1191,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_irq",
      "sp_irq",
      4,
@@ -1107,7 +1203,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_irq",
      "lr_irq",
      4,
@@ -1118,7 +1215,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_abt",
      "sp_abt",
      4,
@@ -1129,7 +1227,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_abt",
      "lr_abt",
      4,
@@ -1140,7 +1239,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_und",
      "sp_und",
      4,
@@ -1151,7 +1251,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_und",
      "lr_und",
      4,
@@ -1162,7 +1263,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_svc",
      "sp_svc",
      4,
@@ -1173,7 +1275,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_svc",
      "lr_svc",
      4,
@@ -1184,7 +1287,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-     }};
+     nullptr,
+     0}};
 
 static const uint32_t k_num_register_infos =
     llvm::array_lengthof(g_register_infos);

diff  --git a/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp b/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
index 43f277eff9ca..90b51d93bf72 100644
--- a/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
+++ b/lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
@@ -54,7 +54,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r1",
      nullptr,
      4,
@@ -65,7 +66,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r2",
      nullptr,
      4,
@@ -76,7 +78,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r3",
      nullptr,
      4,
@@ -87,7 +90,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r4",
      nullptr,
      4,
@@ -98,7 +102,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r5",
      nullptr,
      4,
@@ -109,7 +114,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r6",
      nullptr,
      4,
@@ -120,7 +126,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r7",
      nullptr,
      4,
@@ -131,7 +138,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8",
      nullptr,
      4,
@@ -142,7 +150,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9",
      nullptr,
      4,
@@ -153,7 +162,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      nullptr,
      4,
@@ -164,7 +174,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      nullptr,
      4,
@@ -175,7 +186,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      nullptr,
      4,
@@ -186,7 +198,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sp",
      "r13",
      4,
@@ -197,7 +210,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "r14",
      4,
@@ -208,7 +222,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      "r15",
      4,
@@ -219,7 +234,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cpsr",
      "psr",
      4,
@@ -230,7 +246,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s0",
      nullptr,
      4,
@@ -241,7 +258,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s1",
      nullptr,
      4,
@@ -252,7 +270,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s2",
      nullptr,
      4,
@@ -263,7 +282,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s3",
      nullptr,
      4,
@@ -274,7 +294,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s4",
      nullptr,
      4,
@@ -285,7 +306,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s5",
      nullptr,
      4,
@@ -296,7 +318,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s6",
      nullptr,
      4,
@@ -307,7 +330,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s7",
      nullptr,
      4,
@@ -318,7 +342,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s8",
      nullptr,
      4,
@@ -329,7 +354,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s9",
      nullptr,
      4,
@@ -340,7 +366,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s10",
      nullptr,
      4,
@@ -351,7 +378,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s11",
      nullptr,
      4,
@@ -362,7 +390,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s12",
      nullptr,
      4,
@@ -373,7 +402,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s13",
      nullptr,
      4,
@@ -384,7 +414,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s14",
      nullptr,
      4,
@@ -395,7 +426,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s15",
      nullptr,
      4,
@@ -406,7 +438,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s16",
      nullptr,
      4,
@@ -417,7 +450,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s17",
      nullptr,
      4,
@@ -428,7 +462,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s18",
      nullptr,
      4,
@@ -439,7 +474,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s19",
      nullptr,
      4,
@@ -450,7 +486,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s20",
      nullptr,
      4,
@@ -461,7 +498,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s21",
      nullptr,
      4,
@@ -472,7 +510,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s22",
      nullptr,
      4,
@@ -483,7 +522,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s23",
      nullptr,
      4,
@@ -494,7 +534,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s24",
      nullptr,
      4,
@@ -505,7 +546,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s25",
      nullptr,
      4,
@@ -516,7 +558,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s26",
      nullptr,
      4,
@@ -527,7 +570,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s27",
      nullptr,
      4,
@@ -538,7 +582,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s28",
      nullptr,
      4,
@@ -549,7 +594,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s29",
      nullptr,
      4,
@@ -560,7 +606,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s30",
      nullptr,
      4,
@@ -571,7 +618,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s31",
      nullptr,
      4,
@@ -582,7 +630,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fpscr",
      nullptr,
      4,
@@ -593,7 +642,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d0",
      nullptr,
      8,
@@ -604,7 +654,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d1",
      nullptr,
      8,
@@ -615,7 +666,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d2",
      nullptr,
      8,
@@ -626,7 +678,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d3",
      nullptr,
      8,
@@ -637,7 +690,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d4",
      nullptr,
      8,
@@ -648,7 +702,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d5",
      nullptr,
      8,
@@ -659,7 +714,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d6",
      nullptr,
      8,
@@ -670,7 +726,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d7",
      nullptr,
      8,
@@ -681,7 +738,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d8",
      nullptr,
      8,
@@ -692,7 +750,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d9",
      nullptr,
      8,
@@ -703,7 +762,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d10",
      nullptr,
      8,
@@ -714,7 +774,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d11",
      nullptr,
      8,
@@ -725,7 +786,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d12",
      nullptr,
      8,
@@ -736,7 +798,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d13",
      nullptr,
      8,
@@ -747,7 +810,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d14",
      nullptr,
      8,
@@ -758,7 +822,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d15",
      nullptr,
      8,
@@ -769,7 +834,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d16",
      nullptr,
      8,
@@ -780,7 +846,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d17",
      nullptr,
      8,
@@ -791,7 +858,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d18",
      nullptr,
      8,
@@ -802,7 +870,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d19",
      nullptr,
      8,
@@ -813,7 +882,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d20",
      nullptr,
      8,
@@ -824,7 +894,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d21",
      nullptr,
      8,
@@ -835,7 +906,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d22",
      nullptr,
      8,
@@ -846,7 +918,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d23",
      nullptr,
      8,
@@ -857,7 +930,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d24",
      nullptr,
      8,
@@ -868,7 +942,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d25",
      nullptr,
      8,
@@ -879,7 +954,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d26",
      nullptr,
      8,
@@ -890,7 +966,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d27",
      nullptr,
      8,
@@ -901,7 +978,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d28",
      nullptr,
      8,
@@ -912,7 +990,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d29",
      nullptr,
      8,
@@ -923,7 +1002,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d30",
      nullptr,
      8,
@@ -934,7 +1014,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"d31",
      nullptr,
      8,
@@ -945,7 +1026,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8_usr",
      nullptr,
      4,
@@ -956,7 +1038,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9_usr",
      nullptr,
      4,
@@ -967,7 +1050,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10_usr",
      nullptr,
      4,
@@ -978,7 +1062,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11_usr",
      nullptr,
      4,
@@ -989,7 +1074,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12_usr",
      nullptr,
      4,
@@ -1000,7 +1086,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_usr",
      "sp_usr",
      4,
@@ -1011,7 +1098,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_usr",
      "lr_usr",
      4,
@@ -1022,7 +1110,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8_fiq",
      nullptr,
      4,
@@ -1033,7 +1122,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9_fiq",
      nullptr,
      4,
@@ -1044,7 +1134,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10_fiq",
      nullptr,
      4,
@@ -1055,7 +1146,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11_fiq",
      nullptr,
      4,
@@ -1066,7 +1158,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12_fiq",
      nullptr,
      4,
@@ -1077,7 +1170,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_fiq",
      "sp_fiq",
      4,
@@ -1088,7 +1182,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_fiq",
      "lr_fiq",
      4,
@@ -1099,7 +1194,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_irq",
      "sp_irq",
      4,
@@ -1110,7 +1206,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_irq",
      "lr_irq",
      4,
@@ -1121,7 +1218,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_abt",
      "sp_abt",
      4,
@@ -1132,7 +1230,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_abt",
      "lr_abt",
      4,
@@ -1143,7 +1242,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_und",
      "sp_und",
      4,
@@ -1154,7 +1254,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_und",
      "lr_und",
      4,
@@ -1165,7 +1266,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13_svc",
      "sp_svc",
      4,
@@ -1176,7 +1278,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14_svc",
      "lr_svc",
      4,
@@ -1187,7 +1290,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-     }};
+     nullptr,
+     0}};
 
 static const uint32_t k_num_register_infos =
     llvm::array_lengthof(g_register_infos);

diff  --git a/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp b/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp
index 07ea8a6b4baa..62d0940cc6c4 100644
--- a/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp
+++ b/lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp
@@ -45,7 +45,8 @@ static const RegisterInfo g_register_infos[] = {
      {0, 0, LLDB_INVALID_REGNUM, 0, 0},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r01",
      "",
      4,
@@ -55,7 +56,8 @@ static const RegisterInfo g_register_infos[] = {
      {1, 1, LLDB_INVALID_REGNUM, 1, 1},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r02",
      "",
      4,
@@ -65,7 +67,8 @@ static const RegisterInfo g_register_infos[] = {
      {2, 2, LLDB_INVALID_REGNUM, 2, 2},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r03",
      "",
      4,
@@ -75,7 +78,8 @@ static const RegisterInfo g_register_infos[] = {
      {3, 3, LLDB_INVALID_REGNUM, 3, 3},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r04",
      "",
      4,
@@ -85,7 +89,8 @@ static const RegisterInfo g_register_infos[] = {
      {4, 4, LLDB_INVALID_REGNUM, 4, 4},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r05",
      "",
      4,
@@ -95,7 +100,8 @@ static const RegisterInfo g_register_infos[] = {
      {5, 5, LLDB_INVALID_REGNUM, 5, 5},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r06",
      "",
      4,
@@ -105,7 +111,8 @@ static const RegisterInfo g_register_infos[] = {
      {6, 6, LLDB_INVALID_REGNUM, 6, 6},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r07",
      "",
      4,
@@ -115,7 +122,8 @@ static const RegisterInfo g_register_infos[] = {
      {7, 7, LLDB_INVALID_REGNUM, 7, 7},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r08",
      "",
      4,
@@ -125,7 +133,8 @@ static const RegisterInfo g_register_infos[] = {
      {8, 8, LLDB_INVALID_REGNUM, 8, 8},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r09",
      "",
      4,
@@ -135,7 +144,8 @@ static const RegisterInfo g_register_infos[] = {
      {9, 9, LLDB_INVALID_REGNUM, 9, 9},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      "",
      4,
@@ -145,7 +155,8 @@ static const RegisterInfo g_register_infos[] = {
      {10, 10, LLDB_INVALID_REGNUM, 10, 10},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      "",
      4,
@@ -155,7 +166,8 @@ static const RegisterInfo g_register_infos[] = {
      {11, 11, LLDB_INVALID_REGNUM, 11, 11},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      "",
      4,
@@ -165,7 +177,8 @@ static const RegisterInfo g_register_infos[] = {
      {12, 12, LLDB_INVALID_REGNUM, 12, 12},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13",
      "",
      4,
@@ -175,7 +188,8 @@ static const RegisterInfo g_register_infos[] = {
      {13, 13, LLDB_INVALID_REGNUM, 13, 13},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14",
      "",
      4,
@@ -185,7 +199,8 @@ static const RegisterInfo g_register_infos[] = {
      {14, 14, LLDB_INVALID_REGNUM, 14, 14},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r15",
      "",
      4,
@@ -195,7 +210,8 @@ static const RegisterInfo g_register_infos[] = {
      {15, 15, LLDB_INVALID_REGNUM, 15, 15},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r16",
      "",
      4,
@@ -205,7 +221,8 @@ static const RegisterInfo g_register_infos[] = {
      {16, 16, LLDB_INVALID_REGNUM, 16, 16},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r17",
      "",
      4,
@@ -215,7 +232,8 @@ static const RegisterInfo g_register_infos[] = {
      {17, 17, LLDB_INVALID_REGNUM, 17, 17},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r18",
      "",
      4,
@@ -225,7 +243,8 @@ static const RegisterInfo g_register_infos[] = {
      {18, 18, LLDB_INVALID_REGNUM, 18, 18},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r19",
      "",
      4,
@@ -235,7 +254,8 @@ static const RegisterInfo g_register_infos[] = {
      {19, 19, LLDB_INVALID_REGNUM, 19, 19},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r20",
      "",
      4,
@@ -245,7 +265,8 @@ static const RegisterInfo g_register_infos[] = {
      {20, 20, LLDB_INVALID_REGNUM, 20, 20},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r21",
      "",
      4,
@@ -255,7 +276,8 @@ static const RegisterInfo g_register_infos[] = {
      {21, 21, LLDB_INVALID_REGNUM, 21, 21},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r22",
      "",
      4,
@@ -265,7 +287,8 @@ static const RegisterInfo g_register_infos[] = {
      {22, 22, LLDB_INVALID_REGNUM, 22, 22},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r23",
      "",
      4,
@@ -275,7 +298,8 @@ static const RegisterInfo g_register_infos[] = {
      {23, 23, LLDB_INVALID_REGNUM, 23, 23},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r24",
      "",
      4,
@@ -285,7 +309,8 @@ static const RegisterInfo g_register_infos[] = {
      {24, 24, LLDB_INVALID_REGNUM, 24, 24},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r25",
      "",
      4,
@@ -295,7 +320,8 @@ static const RegisterInfo g_register_infos[] = {
      {25, 25, LLDB_INVALID_REGNUM, 25, 25},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r26",
      "",
      4,
@@ -305,7 +331,8 @@ static const RegisterInfo g_register_infos[] = {
      {26, 26, LLDB_INVALID_REGNUM, 26, 26},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r27",
      "",
      4,
@@ -315,7 +342,8 @@ static const RegisterInfo g_register_infos[] = {
      {27, 27, LLDB_INVALID_REGNUM, 27, 27},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r28",
      "",
      4,
@@ -325,7 +353,8 @@ static const RegisterInfo g_register_infos[] = {
      {28, 28, LLDB_INVALID_REGNUM, 28, 28},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sp",
      "r29",
      4,
@@ -335,7 +364,8 @@ static const RegisterInfo g_register_infos[] = {
      {29, 29, LLDB_REGNUM_GENERIC_SP, 29, 29},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fp",
      "r30",
      4,
@@ -345,7 +375,8 @@ static const RegisterInfo g_register_infos[] = {
      {30, 30, LLDB_REGNUM_GENERIC_FP, 30, 30},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "r31",
      4,
@@ -355,7 +386,8 @@ static const RegisterInfo g_register_infos[] = {
      {31, 31, LLDB_REGNUM_GENERIC_RA, 31, 31},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sa0",
      "",
      4,
@@ -365,7 +397,8 @@ static const RegisterInfo g_register_infos[] = {
      {32, 32, LLDB_INVALID_REGNUM, 32, 32},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lc0",
      "",
      4,
@@ -375,7 +408,8 @@ static const RegisterInfo g_register_infos[] = {
      {33, 33, LLDB_INVALID_REGNUM, 33, 33},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sa1",
      "",
      4,
@@ -385,7 +419,8 @@ static const RegisterInfo g_register_infos[] = {
      {34, 34, LLDB_INVALID_REGNUM, 34, 34},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lc1",
      "",
      4,
@@ -395,7 +430,8 @@ static const RegisterInfo g_register_infos[] = {
      {35, 35, LLDB_INVALID_REGNUM, 35, 35},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // --> hexagon-v4/5/55/56-sim.xml
     {"p3_0",
      "",
@@ -406,7 +442,8 @@ static const RegisterInfo g_register_infos[] = {
      {36, 36, LLDB_INVALID_REGNUM, 36, 36},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // PADDING {
     {"p00",
      "",
@@ -417,7 +454,8 @@ static const RegisterInfo g_register_infos[] = {
      {37, 37, LLDB_INVALID_REGNUM, 37, 37},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // }
     {"m0",
      "",
@@ -428,7 +466,8 @@ static const RegisterInfo g_register_infos[] = {
      {38, 38, LLDB_INVALID_REGNUM, 38, 38},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"m1",
      "",
      4,
@@ -438,7 +477,8 @@ static const RegisterInfo g_register_infos[] = {
      {39, 39, LLDB_INVALID_REGNUM, 39, 39},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"usr",
      "",
      4,
@@ -448,7 +488,8 @@ static const RegisterInfo g_register_infos[] = {
      {40, 40, LLDB_INVALID_REGNUM, 40, 40},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      "",
      4,
@@ -458,7 +499,8 @@ static const RegisterInfo g_register_infos[] = {
      {41, 41, LLDB_REGNUM_GENERIC_PC, 41, 41},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"ugp",
      "",
      4,
@@ -468,7 +510,8 @@ static const RegisterInfo g_register_infos[] = {
      {42, 42, LLDB_INVALID_REGNUM, 42, 42},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"gp",
      "",
      4,
@@ -478,7 +521,8 @@ static const RegisterInfo g_register_infos[] = {
      {43, 43, LLDB_INVALID_REGNUM, 43, 43},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cs0",
      "",
      4,
@@ -488,7 +532,8 @@ static const RegisterInfo g_register_infos[] = {
      {44, 44, LLDB_INVALID_REGNUM, 44, 44},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cs1",
      "",
      4,
@@ -498,7 +543,8 @@ static const RegisterInfo g_register_infos[] = {
      {45, 45, LLDB_INVALID_REGNUM, 45, 45},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // PADDING {
     {"p01",
      "",
@@ -509,7 +555,8 @@ static const RegisterInfo g_register_infos[] = {
      {46, 46, LLDB_INVALID_REGNUM, 46, 46},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p02",
      "",
      4,
@@ -519,7 +566,8 @@ static const RegisterInfo g_register_infos[] = {
      {47, 47, LLDB_INVALID_REGNUM, 47, 47},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p03",
      "",
      4,
@@ -529,7 +577,8 @@ static const RegisterInfo g_register_infos[] = {
      {48, 48, LLDB_INVALID_REGNUM, 48, 48},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p04",
      "",
      4,
@@ -539,7 +588,8 @@ static const RegisterInfo g_register_infos[] = {
      {49, 49, LLDB_INVALID_REGNUM, 49, 49},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p05",
      "",
      4,
@@ -549,7 +599,8 @@ static const RegisterInfo g_register_infos[] = {
      {50, 50, LLDB_INVALID_REGNUM, 50, 50},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p06",
      "",
      4,
@@ -559,7 +610,8 @@ static const RegisterInfo g_register_infos[] = {
      {51, 51, LLDB_INVALID_REGNUM, 51, 51},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p07",
      "",
      4,
@@ -569,7 +621,8 @@ static const RegisterInfo g_register_infos[] = {
      {52, 52, LLDB_INVALID_REGNUM, 52, 52},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p08",
      "",
      4,
@@ -579,7 +632,8 @@ static const RegisterInfo g_register_infos[] = {
      {53, 53, LLDB_INVALID_REGNUM, 53, 53},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p09",
      "",
      4,
@@ -589,7 +643,8 @@ static const RegisterInfo g_register_infos[] = {
      {54, 54, LLDB_INVALID_REGNUM, 54, 54},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p10",
      "",
      4,
@@ -599,7 +654,8 @@ static const RegisterInfo g_register_infos[] = {
      {55, 55, LLDB_INVALID_REGNUM, 55, 55},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p11",
      "",
      4,
@@ -609,7 +665,8 @@ static const RegisterInfo g_register_infos[] = {
      {56, 56, LLDB_INVALID_REGNUM, 56, 56},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p12",
      "",
      4,
@@ -619,7 +676,8 @@ static const RegisterInfo g_register_infos[] = {
      {57, 57, LLDB_INVALID_REGNUM, 57, 57},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p13",
      "",
      4,
@@ -629,7 +687,8 @@ static const RegisterInfo g_register_infos[] = {
      {58, 58, LLDB_INVALID_REGNUM, 58, 58},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p14",
      "",
      4,
@@ -639,7 +698,8 @@ static const RegisterInfo g_register_infos[] = {
      {59, 59, LLDB_INVALID_REGNUM, 59, 59},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p15",
      "",
      4,
@@ -649,7 +709,8 @@ static const RegisterInfo g_register_infos[] = {
      {60, 60, LLDB_INVALID_REGNUM, 60, 60},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p16",
      "",
      4,
@@ -659,7 +720,8 @@ static const RegisterInfo g_register_infos[] = {
      {61, 61, LLDB_INVALID_REGNUM, 61, 61},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p17",
      "",
      4,
@@ -669,7 +731,8 @@ static const RegisterInfo g_register_infos[] = {
      {62, 62, LLDB_INVALID_REGNUM, 62, 62},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p18",
      "",
      4,
@@ -679,7 +742,8 @@ static const RegisterInfo g_register_infos[] = {
      {63, 63, LLDB_INVALID_REGNUM, 63, 63},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // }
     {"sgp0",
      "",
@@ -690,7 +754,8 @@ static const RegisterInfo g_register_infos[] = {
      {64, 64, LLDB_INVALID_REGNUM, 64, 64},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // PADDING {
     {"p19",
      "",
@@ -701,7 +766,8 @@ static const RegisterInfo g_register_infos[] = {
      {65, 65, LLDB_INVALID_REGNUM, 65, 65},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // }
     {"stid",
      "",
@@ -712,7 +778,8 @@ static const RegisterInfo g_register_infos[] = {
      {66, 66, LLDB_INVALID_REGNUM, 66, 66},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"elr",
      "",
      4,
@@ -722,7 +789,8 @@ static const RegisterInfo g_register_infos[] = {
      {67, 67, LLDB_INVALID_REGNUM, 67, 67},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"badva0",
      "",
      4,
@@ -732,7 +800,8 @@ static const RegisterInfo g_register_infos[] = {
      {68, 68, LLDB_INVALID_REGNUM, 68, 68},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"badva1",
      "",
      4,
@@ -742,7 +811,8 @@ static const RegisterInfo g_register_infos[] = {
      {69, 69, LLDB_INVALID_REGNUM, 69, 69},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"ssr",
      "",
      4,
@@ -752,7 +822,8 @@ static const RegisterInfo g_register_infos[] = {
      {70, 70, LLDB_INVALID_REGNUM, 70, 70},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"ccr",
      "",
      4,
@@ -762,7 +833,8 @@ static const RegisterInfo g_register_infos[] = {
      {71, 71, LLDB_INVALID_REGNUM, 71, 71},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"htid",
      "",
      4,
@@ -772,7 +844,8 @@ static const RegisterInfo g_register_infos[] = {
      {72, 72, LLDB_INVALID_REGNUM, 72, 72},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // PADDING {
     {"p20",
      "",
@@ -783,7 +856,8 @@ static const RegisterInfo g_register_infos[] = {
      {73, 73, LLDB_INVALID_REGNUM, 73, 73},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // }
     {"imask",
      "",
@@ -794,7 +868,8 @@ static const RegisterInfo g_register_infos[] = {
      {74, 74, LLDB_INVALID_REGNUM, 74, 74},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // PADDING {
     {"p21",
      "",
@@ -805,7 +880,8 @@ static const RegisterInfo g_register_infos[] = {
      {75, 75, LLDB_INVALID_REGNUM, 75, 75},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p22",
      "",
      4,
@@ -815,7 +891,8 @@ static const RegisterInfo g_register_infos[] = {
      {76, 76, LLDB_INVALID_REGNUM, 76, 76},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p23",
      "",
      4,
@@ -825,7 +902,8 @@ static const RegisterInfo g_register_infos[] = {
      {77, 77, LLDB_INVALID_REGNUM, 77, 77},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p24",
      "",
      4,
@@ -835,7 +913,8 @@ static const RegisterInfo g_register_infos[] = {
      {78, 78, LLDB_INVALID_REGNUM, 78, 78},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"p25",
      "",
      4,
@@ -845,7 +924,8 @@ static const RegisterInfo g_register_infos[] = {
      {79, 79, LLDB_INVALID_REGNUM, 79, 79},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // }
     {"g0",
      "",
@@ -856,7 +936,8 @@ static const RegisterInfo g_register_infos[] = {
      {80, 80, LLDB_INVALID_REGNUM, 80, 80},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"g1",
      "",
      4,
@@ -866,7 +947,8 @@ static const RegisterInfo g_register_infos[] = {
      {81, 81, LLDB_INVALID_REGNUM, 81, 81},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"g2",
      "",
      4,
@@ -876,7 +958,8 @@ static const RegisterInfo g_register_infos[] = {
      {82, 82, LLDB_INVALID_REGNUM, 82, 82},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"g3",
      "",
      4,
@@ -886,7 +969,8 @@ static const RegisterInfo g_register_infos[] = {
      {83, 83, LLDB_INVALID_REGNUM, 83, 83},
      nullptr,
      nullptr,
-     }};
+     nullptr,
+     0}};
 
 static const uint32_t k_num_register_infos =
     sizeof(g_register_infos) / sizeof(RegisterInfo);

diff  --git a/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp b/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
index ac0531a0ec19..65bb52879862 100644
--- a/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
+++ b/lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
@@ -92,7 +92,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r1",
      "AT",
      4,
@@ -103,7 +104,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r2",
      "v0",
      4,
@@ -114,7 +116,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r3",
      "v1",
      4,
@@ -125,7 +128,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r4",
      nullptr,
      4,
@@ -136,7 +140,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r5",
      nullptr,
      4,
@@ -147,7 +152,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r6",
      nullptr,
      4,
@@ -158,7 +164,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r7",
      nullptr,
      4,
@@ -169,7 +176,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8",
      "arg5",
      4,
@@ -180,7 +188,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9",
      "arg6",
      4,
@@ -191,7 +200,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      "arg7",
      4,
@@ -202,7 +212,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      "arg8",
      4,
@@ -213,7 +224,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      nullptr,
      4,
@@ -224,7 +236,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13",
      nullptr,
      4,
@@ -235,7 +248,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14",
      nullptr,
      4,
@@ -246,7 +260,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r15",
      nullptr,
      4,
@@ -257,7 +272,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r16",
      nullptr,
      4,
@@ -268,7 +284,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r17",
      nullptr,
      4,
@@ -279,7 +296,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r18",
      nullptr,
      4,
@@ -290,7 +308,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r19",
      nullptr,
      4,
@@ -301,7 +320,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r20",
      nullptr,
      4,
@@ -312,7 +332,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r21",
      nullptr,
      4,
@@ -323,7 +344,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r22",
      nullptr,
      4,
@@ -334,7 +356,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r23",
      nullptr,
      4,
@@ -345,7 +368,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r24",
      nullptr,
      4,
@@ -356,7 +380,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r25",
      nullptr,
      4,
@@ -367,7 +392,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r26",
      nullptr,
      4,
@@ -378,7 +404,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r27",
      nullptr,
      4,
@@ -389,7 +416,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r28",
      "gp",
      4,
@@ -400,7 +428,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r29",
      nullptr,
      4,
@@ -411,7 +440,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r30",
      nullptr,
      4,
@@ -422,7 +452,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r31",
      nullptr,
      4,
@@ -433,7 +464,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sr",
      nullptr,
      4,
@@ -444,7 +476,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lo",
      nullptr,
      4,
@@ -455,7 +488,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"hi",
      nullptr,
      4,
@@ -466,7 +500,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"bad",
      nullptr,
      4,
@@ -477,7 +512,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cause",
      nullptr,
      4,
@@ -488,7 +524,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      nullptr,
      4,
@@ -499,7 +536,8 @@ static const RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 };
 
 static const uint32_t k_num_register_infos =

diff  --git a/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp b/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
index 9aa390cdb52e..3c42d278d860 100644
--- a/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
+++ b/lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
@@ -92,7 +92,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r1",
      "AT",
      8,
@@ -103,7 +104,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r2",
      "v0",
      8,
@@ -114,7 +116,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r3",
      "v1",
      8,
@@ -125,7 +128,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r4",
      nullptr,
      8,
@@ -136,7 +140,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r5",
      nullptr,
      8,
@@ -147,7 +152,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r6",
      nullptr,
      8,
@@ -158,7 +164,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r7",
      nullptr,
      8,
@@ -169,7 +176,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8",
      nullptr,
      8,
@@ -180,7 +188,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9",
      nullptr,
      8,
@@ -191,7 +200,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      nullptr,
      8,
@@ -202,7 +212,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      nullptr,
      8,
@@ -213,7 +224,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      nullptr,
      8,
@@ -224,7 +236,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r13",
      nullptr,
      8,
@@ -235,7 +248,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r14",
      nullptr,
      8,
@@ -246,7 +260,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r15",
      nullptr,
      8,
@@ -257,7 +272,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r16",
      nullptr,
      8,
@@ -268,7 +284,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r17",
      nullptr,
      8,
@@ -279,7 +296,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r18",
      nullptr,
      8,
@@ -290,7 +308,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r19",
      nullptr,
      8,
@@ -301,7 +320,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r20",
      nullptr,
      8,
@@ -312,7 +332,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r21",
      nullptr,
      8,
@@ -323,7 +344,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r22",
      nullptr,
      8,
@@ -334,7 +356,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r23",
      nullptr,
      8,
@@ -345,7 +368,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r24",
      nullptr,
      8,
@@ -356,7 +380,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r25",
      nullptr,
      8,
@@ -367,7 +392,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r26",
      nullptr,
      8,
@@ -378,7 +404,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r27",
      nullptr,
      8,
@@ -389,7 +416,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r28",
      "gp",
      8,
@@ -400,7 +428,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r29",
      nullptr,
      8,
@@ -411,7 +440,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r30",
      nullptr,
      8,
@@ -422,7 +452,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r31",
      nullptr,
      8,
@@ -433,7 +464,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sr",
      nullptr,
      4,
@@ -444,7 +476,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lo",
      nullptr,
      8,
@@ -455,7 +488,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"hi",
      nullptr,
      8,
@@ -466,7 +500,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"bad",
      nullptr,
      8,
@@ -477,7 +512,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cause",
      nullptr,
      8,
@@ -488,7 +524,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      nullptr,
      8,
@@ -499,7 +536,8 @@ static const RegisterInfo g_register_infos_mips64[] = {
       LLDB_INVALID_REGNUM},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 };
 
 static const uint32_t k_num_register_infos =

diff  --git a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
index d2f53f71e431..90728b7cd56e 100644
--- a/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
+++ b/lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
@@ -112,7 +112,7 @@ enum dwarf_regnums {
 #define DEFINE_GPR(reg, alt, kind1, kind2, kind3, kind4)                       \
   {                                                                            \
     #reg, alt, 8, 0, eEncodingUint, eFormatHex, {kind1, kind2, kind3, kind4 }, \
-                                                 nullptr, nullptr,             \
+                                                 nullptr, nullptr, nullptr, 0  \
   }
 
 static const RegisterInfo g_register_infos[] = {
@@ -200,7 +200,9 @@ static const RegisterInfo g_register_infos[] = {
      eFormatHex,
      {dwarf_cfa, dwarf_cfa, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
      nullptr,
-     }};
+     nullptr,
+     nullptr,
+     0}};
 
 static const uint32_t k_num_register_infos =
     llvm::array_lengthof(g_register_infos);

diff  --git a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
index f20266878b97..0494d7803053 100644
--- a/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
+++ b/lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
@@ -115,7 +115,7 @@ enum dwarf_regnums {
     #name, alt, size, 0, eEncodingUint, eFormatHex,                            \
         {dwarf_##name##_s390x, dwarf_##name##_s390x, generic,                  \
          LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM },                           \
-         nullptr, nullptr,                                                     \
+         nullptr, nullptr, nullptr, 0                                          \
   }
 
 static const RegisterInfo g_register_infos[] = {

diff  --git a/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp b/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
index ab5a5d07de90..9b0c06bcccab 100644
--- a/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
+++ b/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
@@ -35,7 +35,7 @@
   "na", nullptr, 8, 0, lldb::eEncodingUint, lldb::eFormatHex,                  \
       {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,          \
        LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},                              \
-      nullptr, nullptr
+      nullptr, nullptr, nullptr, 0
 
 #define DECLARE_REGISTER_INFOS_ARM64_STRUCT
 

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
index e1d3b6ecd7d0..7e38091738e3 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp
@@ -177,7 +177,7 @@ enum {
                                  {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    \
                                   LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    \
                                   LLDB_INVALID_REGNUM },                       \
-                                  nullptr, nullptr,
+                                  nullptr, nullptr, nullptr, 0
 #define REG_CONTEXT_SIZE                                                       \
   (sizeof(RegisterContextDarwin_arm::GPR) +                                    \
    sizeof(RegisterContextDarwin_arm::FPU) +                                    \
@@ -200,7 +200,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r0, dwarf_r0, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r0},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r1",
      nullptr,
      4,
@@ -210,7 +211,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r1, dwarf_r1, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r1},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r2",
      nullptr,
      4,
@@ -220,7 +222,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r2, dwarf_r2, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r2},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r3",
      nullptr,
      4,
@@ -230,7 +233,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r3, dwarf_r3, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r3},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r4",
      nullptr,
      4,
@@ -240,7 +244,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r4, dwarf_r4, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r4},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r5",
      nullptr,
      4,
@@ -250,7 +255,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r5, dwarf_r5, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r5},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r6",
      nullptr,
      4,
@@ -260,7 +266,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r6, dwarf_r6, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r6},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r7",
      nullptr,
      4,
@@ -271,7 +278,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_r7},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8",
      nullptr,
      4,
@@ -281,7 +289,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r8, dwarf_r8, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r8},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9",
      nullptr,
      4,
@@ -291,7 +300,8 @@ static RegisterInfo g_register_infos[] = {
      {ehframe_r9, dwarf_r9, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r9},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      nullptr,
      4,
@@ -302,7 +312,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_r10},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      nullptr,
      4,
@@ -313,7 +324,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_r11},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      nullptr,
      4,
@@ -324,7 +336,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_r12},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sp",
      "r13",
      4,
@@ -335,7 +348,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_sp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "r14",
      4,
@@ -346,7 +360,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_lr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      "r15",
      4,
@@ -357,7 +372,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_pc},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cpsr",
      "psr",
      4,
@@ -368,7 +384,8 @@ static RegisterInfo g_register_infos[] = {
       gpr_cpsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {"s0",
      nullptr,
@@ -380,7 +397,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s0},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s1",
      nullptr,
      4,
@@ -391,7 +409,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s1},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s2",
      nullptr,
      4,
@@ -402,7 +421,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s2},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s3",
      nullptr,
      4,
@@ -413,7 +433,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s3},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s4",
      nullptr,
      4,
@@ -424,7 +445,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s4},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s5",
      nullptr,
      4,
@@ -435,7 +457,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s5},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s6",
      nullptr,
      4,
@@ -446,7 +469,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s6},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s7",
      nullptr,
      4,
@@ -457,7 +481,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s7},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s8",
      nullptr,
      4,
@@ -468,7 +493,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s8},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s9",
      nullptr,
      4,
@@ -479,7 +505,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s9},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s10",
      nullptr,
      4,
@@ -490,7 +517,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s10},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s11",
      nullptr,
      4,
@@ -501,7 +529,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s11},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s12",
      nullptr,
      4,
@@ -512,7 +541,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s12},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s13",
      nullptr,
      4,
@@ -523,7 +553,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s13},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s14",
      nullptr,
      4,
@@ -534,7 +565,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s14},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s15",
      nullptr,
      4,
@@ -545,7 +577,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s15},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s16",
      nullptr,
      4,
@@ -556,7 +589,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s16},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s17",
      nullptr,
      4,
@@ -567,7 +601,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s17},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s18",
      nullptr,
      4,
@@ -578,7 +613,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s18},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s19",
      nullptr,
      4,
@@ -589,7 +625,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s19},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s20",
      nullptr,
      4,
@@ -600,7 +637,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s20},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s21",
      nullptr,
      4,
@@ -611,7 +649,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s21},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s22",
      nullptr,
      4,
@@ -622,7 +661,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s22},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s23",
      nullptr,
      4,
@@ -633,7 +673,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s23},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s24",
      nullptr,
      4,
@@ -644,7 +685,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s24},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s25",
      nullptr,
      4,
@@ -655,7 +697,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s25},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s26",
      nullptr,
      4,
@@ -666,7 +709,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s26},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s27",
      nullptr,
      4,
@@ -677,7 +721,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s27},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s28",
      nullptr,
      4,
@@ -688,7 +733,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s28},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s29",
      nullptr,
      4,
@@ -699,7 +745,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s29},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s30",
      nullptr,
      4,
@@ -710,7 +757,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s30},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"s31",
      nullptr,
      4,
@@ -721,7 +769,8 @@ static RegisterInfo g_register_infos[] = {
       fpu_s31},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fpscr",
      nullptr,
      4,
@@ -732,7 +781,8 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, fpu_fpscr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {"exception",
      nullptr,
@@ -744,7 +794,8 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, exc_exception},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fsr",
      nullptr,
      4,
@@ -755,7 +806,8 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, exc_fsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"far",
      nullptr,
      4,
@@ -766,7 +818,8 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, exc_far},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {DEFINE_DBG(bvr, 0)},
     {DEFINE_DBG(bvr, 1)},

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
index 50f710e26815..b98b2f35c23e 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
@@ -59,7 +59,7 @@ using namespace lldb_private;
                               {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,       \
                                LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,       \
                                LLDB_INVALID_REGNUM },                          \
-                               NULL, NULL
+                               NULL, NULL, NULL, 0
 #define REG_CONTEXT_SIZE                                                       \
   (sizeof(RegisterContextDarwin_arm64::GPR) +                                  \
    sizeof(RegisterContextDarwin_arm64::FPU) +                                  \

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
index 5f56e6f1636a..95f8132a990c 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp
@@ -154,7 +154,7 @@ enum {
                          {LLDB_INVALID_REGNUM, dwarf_##reg##i,                 \
                           LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,            \
                           fpu_##reg##i },                                      \
-                          nullptr, nullptr,
+                          nullptr, nullptr, nullptr, 0
 
 #define DEFINE_EXC(reg)                                                        \
   #reg, NULL, sizeof(((RegisterContextDarwin_i386::EXC *) NULL)->reg),         \
@@ -175,158 +175,184 @@ static RegisterInfo g_register_infos[] = {
       gpr_eax},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(ebx, nullptr),
      {ehframe_ebx, dwarf_ebx, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       gpr_ebx},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(ecx, nullptr),
      {ehframe_ecx, dwarf_ecx, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       gpr_ecx},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(edx, nullptr),
      {ehframe_edx, dwarf_edx, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       gpr_edx},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(edi, nullptr),
      {ehframe_edi, dwarf_edi, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       gpr_edi},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(esi, nullptr),
      {ehframe_esi, dwarf_esi, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       gpr_esi},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(ebp, "fp"),
      {ehframe_ebp, dwarf_ebp, LLDB_REGNUM_GENERIC_FP, LLDB_INVALID_REGNUM,
       gpr_ebp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(esp, "sp"),
      {ehframe_esp, dwarf_esp, LLDB_REGNUM_GENERIC_SP, LLDB_INVALID_REGNUM,
       gpr_esp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(ss, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_ss},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(eflags, "flags"),
      {ehframe_eflags, dwarf_eflags, LLDB_REGNUM_GENERIC_FLAGS,
       LLDB_INVALID_REGNUM, gpr_eflags},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(eip, "pc"),
      {ehframe_eip, dwarf_eip, LLDB_REGNUM_GENERIC_PC, LLDB_INVALID_REGNUM,
       gpr_eip},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(cs, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_cs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(ds, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_ds},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(es, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_es},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(fs, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_fs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(gs, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_gs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {DEFINE_FPU_UINT(fcw),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_fcw},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(fsw),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_fsw},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(ftw),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_ftw},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(fop),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_fop},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(ip),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_ip},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(cs),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_cs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(dp),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_dp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(ds),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_ds},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(mxcsr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_mxcsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(mxcsrmask),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_mxcsrmask},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_VECT(stmm, 0)},
     {DEFINE_FPU_VECT(stmm, 1)},
     {DEFINE_FPU_VECT(stmm, 2)},
@@ -349,19 +375,22 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, exc_trapno},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_EXC(err),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, exc_err},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_EXC(faultvaddr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, exc_faultvaddr},
      nullptr,
      nullptr,
-     }};
+     nullptr,
+     0}};
 
 static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
 

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
index 567df8fc980c..03e5ea424e39 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp
@@ -172,7 +172,7 @@ enum ehframe_dwarf_regnums {
                          {ehframe_dwarf_fpu_##reg##i,                          \
                           ehframe_dwarf_fpu_##reg##i, LLDB_INVALID_REGNUM,     \
                           LLDB_INVALID_REGNUM, fpu_##reg##i },                 \
-                          nullptr, nullptr,           
+                          nullptr, nullptr, nullptr, 0
 #define DEFINE_EXC(reg)                                                        \
   #reg, NULL, sizeof(((RegisterContextDarwin_x86_64::EXC *) NULL)->reg),       \
                      EXC_OFFSET(reg), eEncodingUint, eFormatHex
@@ -194,188 +194,219 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, gpr_rax},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rbx, nullptr),
      {ehframe_dwarf_gpr_rbx, ehframe_dwarf_gpr_rbx, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_rbx},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rcx, nullptr),
      {ehframe_dwarf_gpr_rcx, ehframe_dwarf_gpr_rcx, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_rcx},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rdx, nullptr),
      {ehframe_dwarf_gpr_rdx, ehframe_dwarf_gpr_rdx, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_rdx},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rdi, nullptr),
      {ehframe_dwarf_gpr_rdi, ehframe_dwarf_gpr_rdi, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_rdi},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rsi, nullptr),
      {ehframe_dwarf_gpr_rsi, ehframe_dwarf_gpr_rsi, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_rsi},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rbp, "fp"),
      {ehframe_dwarf_gpr_rbp, ehframe_dwarf_gpr_rbp, LLDB_REGNUM_GENERIC_FP,
       LLDB_INVALID_REGNUM, gpr_rbp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rsp, "sp"),
      {ehframe_dwarf_gpr_rsp, ehframe_dwarf_gpr_rsp, LLDB_REGNUM_GENERIC_SP,
       LLDB_INVALID_REGNUM, gpr_rsp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r8, nullptr),
      {ehframe_dwarf_gpr_r8, ehframe_dwarf_gpr_r8, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r8},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r9, nullptr),
      {ehframe_dwarf_gpr_r9, ehframe_dwarf_gpr_r9, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r9},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r10, nullptr),
      {ehframe_dwarf_gpr_r10, ehframe_dwarf_gpr_r10, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r10},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r11, nullptr),
      {ehframe_dwarf_gpr_r11, ehframe_dwarf_gpr_r11, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r11},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r12, nullptr),
      {ehframe_dwarf_gpr_r12, ehframe_dwarf_gpr_r12, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r12},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r13, nullptr),
      {ehframe_dwarf_gpr_r13, ehframe_dwarf_gpr_r13, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r13},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r14, nullptr),
      {ehframe_dwarf_gpr_r14, ehframe_dwarf_gpr_r14, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r14},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(r15, nullptr),
      {ehframe_dwarf_gpr_r15, ehframe_dwarf_gpr_r15, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_r15},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rip, "pc"),
      {ehframe_dwarf_gpr_rip, ehframe_dwarf_gpr_rip, LLDB_REGNUM_GENERIC_PC,
       LLDB_INVALID_REGNUM, gpr_rip},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(rflags, "flags"),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_REGNUM_GENERIC_FLAGS,
       LLDB_INVALID_REGNUM, gpr_rflags},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(cs, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_cs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(fs, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_fs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_GPR(gs, nullptr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, gpr_gs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {DEFINE_FPU_UINT(fcw),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_fcw},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(fsw),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_fsw},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(ftw),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_ftw},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(fop),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_fop},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(ip),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_ip},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(cs),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_cs},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(dp),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_dp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(ds),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_ds},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(mxcsr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_mxcsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_UINT(mxcsrmask),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, fpu_mxcsrmask},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_FPU_VECT(stmm, 0)},
     {DEFINE_FPU_VECT(stmm, 1)},
     {DEFINE_FPU_VECT(stmm, 2)},
@@ -406,19 +437,22 @@ static RegisterInfo g_register_infos[] = {
       LLDB_INVALID_REGNUM, exc_trapno},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_EXC(err),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, exc_err},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {DEFINE_EXC(faultvaddr),
      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
       LLDB_INVALID_REGNUM, exc_faultvaddr},
      nullptr,
      nullptr,
-     }};
+     nullptr,
+     0}};
 
 static size_t k_num_register_infos = llvm::array_lengthof(g_register_infos);
 

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
index 39bec20649a4..518dc273faf4 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_i386.cpp
@@ -89,18 +89,19 @@ struct UserArea {
 RegisterContextLinux_i386::RegisterContextLinux_i386(
     const ArchSpec &target_arch)
     : RegisterInfoInterface(target_arch) {
-  RegisterInfo orig_ax = {
-      "orig_eax",
-      nullptr,
-      sizeof(((GPR *)nullptr)->orig_eax),
-      (LLVM_EXTENSION offsetof(GPR, orig_eax)),
-      eEncodingUint,
-      eFormatHex,
-      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
-       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
-      nullptr,
-      nullptr,
-  };
+  RegisterInfo orig_ax = {"orig_eax",
+                          nullptr,
+                          sizeof(((GPR *)nullptr)->orig_eax),
+                          (LLVM_EXTENSION offsetof(GPR, orig_eax)),
+                          eEncodingUint,
+                          eFormatHex,
+                          {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
+                           LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
+                           LLDB_INVALID_REGNUM},
+                          nullptr,
+                          nullptr,
+                          nullptr,
+                          0};
   d_register_infos.push_back(orig_ax);
 }
 

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
index 20b8d74f8c0d..f9d4e23fcde2 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_x86_64.cpp
@@ -156,18 +156,19 @@ RegisterContextLinux_x86_64::RegisterContextLinux_x86_64(
       m_register_info_p(GetRegisterInfoPtr(target_arch)),
       m_register_info_count(GetRegisterInfoCount(target_arch)),
       m_user_register_count(GetUserRegisterInfoCount(target_arch)) {
-  RegisterInfo orig_ax = {
-      "orig_rax",
-      nullptr,
-      sizeof(((GPR *)nullptr)->orig_rax),
-      (LLVM_EXTENSION offsetof(GPR, orig_rax)),
-      eEncodingUint,
-      eFormatHex,
-      {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
-       LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM},
-      nullptr,
-      nullptr,
-  };
+  RegisterInfo orig_ax = {"orig_rax",
+                          nullptr,
+                          sizeof(((GPR *)nullptr)->orig_rax),
+                          (LLVM_EXTENSION offsetof(GPR, orig_rax)),
+                          eEncodingUint,
+                          eFormatHex,
+                          {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
+                           LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
+                           LLDB_INVALID_REGNUM},
+                          nullptr,
+                          nullptr,
+                          nullptr,
+                          0};
   d_register_infos.push_back(orig_ax);
 }
 

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp
index 066d50d9c149..11556e802e33 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_i386.cpp
@@ -41,6 +41,7 @@ typedef struct _GPR {
 #reg, alt, sizeof(((GPR *)nullptr)->reg), GPR_OFFSET(reg), eEncodingUint,  \
         eFormatHex,                                                            \
         {kind1, kind2, kind3, kind4, lldb_##reg##_i386 }, nullptr, nullptr,    \
+         nullptr, 0                                                            \
   }
 
 // clang-format off

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp
index a35ccace5d5b..15cae5ab4c99 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp
@@ -49,6 +49,7 @@ typedef struct _GPR {
 #reg, alt, sizeof(((GPR *)nullptr)->reg), GPR_OFFSET(reg), eEncodingUint,  \
         eFormatHex,                                                            \
         {kind1, kind2, kind3, kind4, lldb_##reg##_x86_64 }, nullptr, nullptr,  \
+         nullptr, 0                                                            \
   }
 
 typedef struct _FPReg {
@@ -79,7 +80,7 @@ typedef struct _FPReg {
         eEncodingUint, eFormatVectorOfUInt64,                                  \
         {dwarf_##reg##_x86_64, dwarf_##reg##_x86_64, LLDB_INVALID_REGNUM,      \
          LLDB_INVALID_REGNUM, lldb_##reg##_x86_64 },                           \
-         nullptr, nullptr,                                                     \
+         nullptr, nullptr, nullptr, 0                                          \
   }
 
 // clang-format off

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp b/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp
index fd4c373e2cb1..63461f7ab2db 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm.cpp
@@ -38,7 +38,7 @@ using namespace lldb_private;
                                  {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    \
                                   LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    \
                                   dbg_##reg##i },                              \
-                                  NULL, NULL,
+                                  NULL, NULL, NULL, 0
 #define REG_CONTEXT_SIZE                                                       \
   (sizeof(RegisterInfoPOSIX_arm::GPR) + sizeof(RegisterInfoPOSIX_arm::FPU) +   \
    sizeof(RegisterInfoPOSIX_arm::EXC))

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp b/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
index 6c130be7b741..b878534b39db 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
@@ -60,7 +60,7 @@
                               {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,       \
                                LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,       \
                                dbg_##reg##i },                                 \
-                               NULL, NULL,         
+                               NULL, NULL, NULL, 0
 #define REG_CONTEXT_SIZE                                                       \
   (sizeof(RegisterInfoPOSIX_arm64::GPR) +                                      \
    sizeof(RegisterInfoPOSIX_arm64::FPU) +                                      \

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h
index 9eba19c071e3..4af0069eb6f3 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h
@@ -347,7 +347,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r0},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r1",
      nullptr,
      4,
@@ -358,7 +359,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r1},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r2",
      nullptr,
      4,
@@ -369,7 +371,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r2},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r3",
      nullptr,
      4,
@@ -380,7 +383,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r3},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r4",
      nullptr,
      4,
@@ -390,7 +394,8 @@ static RegisterInfo g_register_infos_arm[] = {
      {ehframe_r4, dwarf_r4, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r4},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r5",
      nullptr,
      4,
@@ -400,7 +405,8 @@ static RegisterInfo g_register_infos_arm[] = {
      {ehframe_r5, dwarf_r5, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r5},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r6",
      nullptr,
      4,
@@ -410,7 +416,8 @@ static RegisterInfo g_register_infos_arm[] = {
      {ehframe_r6, dwarf_r6, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r6},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r7",
      nullptr,
      4,
@@ -420,7 +427,8 @@ static RegisterInfo g_register_infos_arm[] = {
      {ehframe_r7, dwarf_r7, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r7},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r8",
      nullptr,
      4,
@@ -430,7 +438,8 @@ static RegisterInfo g_register_infos_arm[] = {
      {ehframe_r8, dwarf_r8, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r8},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r9",
      nullptr,
      4,
@@ -440,7 +449,8 @@ static RegisterInfo g_register_infos_arm[] = {
      {ehframe_r9, dwarf_r9, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, gpr_r9},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r10",
      nullptr,
      4,
@@ -451,7 +461,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r10},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r11",
      nullptr,
      4,
@@ -462,7 +473,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r11},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"r12",
      nullptr,
      4,
@@ -473,7 +485,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_r12},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sp",
      "r13",
      4,
@@ -484,7 +497,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_sp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "r14",
      4,
@@ -495,7 +509,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_lr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      "r15",
      4,
@@ -506,7 +521,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_pc},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cpsr",
      "psr",
      4,
@@ -517,7 +533,8 @@ static RegisterInfo g_register_infos_arm[] = {
       gpr_cpsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {"s0",
      nullptr,
@@ -529,7 +546,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s0},
      nullptr,
      g_s0_invalidates,
-    },
+     nullptr,
+     0},
     {"s1",
      nullptr,
      4,
@@ -540,7 +558,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s1},
      nullptr,
      g_s1_invalidates,
-    },
+     nullptr,
+     0},
     {"s2",
      nullptr,
      4,
@@ -551,7 +570,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s2},
      nullptr,
      g_s2_invalidates,
-    },
+     nullptr,
+     0},
     {"s3",
      nullptr,
      4,
@@ -562,7 +582,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s3},
      nullptr,
      g_s3_invalidates,
-    },
+     nullptr,
+     0},
     {"s4",
      nullptr,
      4,
@@ -573,7 +594,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s4},
      nullptr,
      g_s4_invalidates,
-    },
+     nullptr,
+     0},
     {"s5",
      nullptr,
      4,
@@ -584,7 +606,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s5},
      nullptr,
      g_s5_invalidates,
-    },
+     nullptr,
+     0},
     {"s6",
      nullptr,
      4,
@@ -595,7 +618,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s6},
      nullptr,
      g_s6_invalidates,
-    },
+     nullptr,
+     0},
     {"s7",
      nullptr,
      4,
@@ -606,7 +630,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s7},
      nullptr,
      g_s7_invalidates,
-    },
+     nullptr,
+     0},
     {"s8",
      nullptr,
      4,
@@ -617,7 +642,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s8},
      nullptr,
      g_s8_invalidates,
-    },
+     nullptr,
+     0},
     {"s9",
      nullptr,
      4,
@@ -628,7 +654,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s9},
      nullptr,
      g_s9_invalidates,
-    },
+     nullptr,
+     0},
     {"s10",
      nullptr,
      4,
@@ -639,7 +666,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s10},
      nullptr,
      g_s10_invalidates,
-    },
+     nullptr,
+     0},
     {"s11",
      nullptr,
      4,
@@ -650,7 +678,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s11},
      nullptr,
      g_s11_invalidates,
-    },
+     nullptr,
+     0},
     {"s12",
      nullptr,
      4,
@@ -661,7 +690,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s12},
      nullptr,
      g_s12_invalidates,
-    },
+     nullptr,
+     0},
     {"s13",
      nullptr,
      4,
@@ -672,7 +702,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s13},
      nullptr,
      g_s13_invalidates,
-    },
+     nullptr,
+     0},
     {"s14",
      nullptr,
      4,
@@ -683,7 +714,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s14},
      nullptr,
      g_s14_invalidates,
-    },
+     nullptr,
+     0},
     {"s15",
      nullptr,
      4,
@@ -694,7 +726,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s15},
      nullptr,
      g_s15_invalidates,
-    },
+     nullptr,
+     0},
     {"s16",
      nullptr,
      4,
@@ -705,7 +738,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s16},
      nullptr,
      g_s16_invalidates,
-    },
+     nullptr,
+     0},
     {"s17",
      nullptr,
      4,
@@ -716,7 +750,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s17},
      nullptr,
      g_s17_invalidates,
-    },
+     nullptr,
+     0},
     {"s18",
      nullptr,
      4,
@@ -727,7 +762,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s18},
      nullptr,
      g_s18_invalidates,
-    },
+     nullptr,
+     0},
     {"s19",
      nullptr,
      4,
@@ -738,7 +774,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s19},
      nullptr,
      g_s19_invalidates,
-    },
+     nullptr,
+     0},
     {"s20",
      nullptr,
      4,
@@ -749,7 +786,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s20},
      nullptr,
      g_s20_invalidates,
-    },
+     nullptr,
+     0},
     {"s21",
      nullptr,
      4,
@@ -760,7 +798,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s21},
      nullptr,
      g_s21_invalidates,
-    },
+     nullptr,
+     0},
     {"s22",
      nullptr,
      4,
@@ -771,7 +810,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s22},
      nullptr,
      g_s22_invalidates,
-    },
+     nullptr,
+     0},
     {"s23",
      nullptr,
      4,
@@ -782,7 +822,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s23},
      nullptr,
      g_s23_invalidates,
-    },
+     nullptr,
+     0},
     {"s24",
      nullptr,
      4,
@@ -793,7 +834,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s24},
      nullptr,
      g_s24_invalidates,
-    },
+     nullptr,
+     0},
     {"s25",
      nullptr,
      4,
@@ -804,7 +846,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s25},
      nullptr,
      g_s25_invalidates,
-    },
+     nullptr,
+     0},
     {"s26",
      nullptr,
      4,
@@ -815,7 +858,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s26},
      nullptr,
      g_s26_invalidates,
-    },
+     nullptr,
+     0},
     {"s27",
      nullptr,
      4,
@@ -826,7 +870,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s27},
      nullptr,
      g_s27_invalidates,
-    },
+     nullptr,
+     0},
     {"s28",
      nullptr,
      4,
@@ -837,7 +882,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s28},
      nullptr,
      g_s28_invalidates,
-    },
+     nullptr,
+     0},
     {"s29",
      nullptr,
      4,
@@ -848,7 +894,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s29},
      nullptr,
      g_s29_invalidates,
-    },
+     nullptr,
+     0},
     {"s30",
      nullptr,
      4,
@@ -859,7 +906,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s30},
      nullptr,
      g_s30_invalidates,
-    },
+     nullptr,
+     0},
     {"s31",
      nullptr,
      4,
@@ -870,7 +918,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_s31},
      nullptr,
      g_s31_invalidates,
-    },
+     nullptr,
+     0},
     {"fpscr",
      nullptr,
      4,
@@ -881,7 +930,8 @@ static RegisterInfo g_register_infos_arm[] = {
       LLDB_INVALID_REGNUM, fpu_fpscr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {"d0",
      nullptr,
@@ -893,7 +943,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d0},
      g_d0_contains,
      g_d0_invalidates,
-    },
+     nullptr,
+     0},
     {"d1",
      nullptr,
      8,
@@ -904,7 +955,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d1},
      g_d1_contains,
      g_d1_invalidates,
-    },
+     nullptr,
+     0},
     {"d2",
      nullptr,
      8,
@@ -915,7 +967,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d2},
      g_d2_contains,
      g_d2_invalidates,
-    },
+     nullptr,
+     0},
     {"d3",
      nullptr,
      8,
@@ -926,7 +979,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d3},
      g_d3_contains,
      g_d3_invalidates,
-    },
+     nullptr,
+     0},
     {"d4",
      nullptr,
      8,
@@ -937,7 +991,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d4},
      g_d4_contains,
      g_d4_invalidates,
-    },
+     nullptr,
+     0},
     {"d5",
      nullptr,
      8,
@@ -948,7 +1003,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d5},
      g_d5_contains,
      g_d5_invalidates,
-    },
+     nullptr,
+     0},
     {"d6",
      nullptr,
      8,
@@ -959,7 +1015,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d6},
      g_d6_contains,
      g_d6_invalidates,
-    },
+     nullptr,
+     0},
     {"d7",
      nullptr,
      8,
@@ -970,7 +1027,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d7},
      g_d7_contains,
      g_d7_invalidates,
-    },
+     nullptr,
+     0},
     {"d8",
      nullptr,
      8,
@@ -981,7 +1039,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d8},
      g_d8_contains,
      g_d8_invalidates,
-    },
+     nullptr,
+     0},
     {"d9",
      nullptr,
      8,
@@ -992,7 +1051,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d9},
      g_d9_contains,
      g_d9_invalidates,
-    },
+     nullptr,
+     0},
     {"d10",
      nullptr,
      8,
@@ -1003,7 +1063,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d10},
      g_d10_contains,
      g_d10_invalidates,
-    },
+     nullptr,
+     0},
     {"d11",
      nullptr,
      8,
@@ -1014,7 +1075,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d11},
      g_d11_contains,
      g_d11_invalidates,
-    },
+     nullptr,
+     0},
     {"d12",
      nullptr,
      8,
@@ -1025,7 +1087,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d12},
      g_d12_contains,
      g_d12_invalidates,
-    },
+     nullptr,
+     0},
     {"d13",
      nullptr,
      8,
@@ -1036,7 +1099,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d13},
      g_d13_contains,
      g_d13_invalidates,
-    },
+     nullptr,
+     0},
     {"d14",
      nullptr,
      8,
@@ -1047,7 +1111,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d14},
      g_d14_contains,
      g_d14_invalidates,
-    },
+     nullptr,
+     0},
     {"d15",
      nullptr,
      8,
@@ -1058,7 +1123,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d15},
      g_d15_contains,
      g_d15_invalidates,
-    },
+     nullptr,
+     0},
     {"d16",
      nullptr,
      8,
@@ -1069,7 +1135,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d16},
      nullptr,
      g_d16_invalidates,
-    },
+     nullptr,
+     0},
     {"d17",
      nullptr,
      8,
@@ -1080,7 +1147,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d17},
      nullptr,
      g_d17_invalidates,
-    },
+     nullptr,
+     0},
     {"d18",
      nullptr,
      8,
@@ -1091,7 +1159,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d18},
      nullptr,
      g_d18_invalidates,
-    },
+     nullptr,
+     0},
     {"d19",
      nullptr,
      8,
@@ -1102,7 +1171,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d19},
      nullptr,
      g_d19_invalidates,
-    },
+     nullptr,
+     0},
     {"d20",
      nullptr,
      8,
@@ -1113,7 +1183,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d20},
      nullptr,
      g_d20_invalidates,
-    },
+     nullptr,
+     0},
     {"d21",
      nullptr,
      8,
@@ -1124,7 +1195,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d21},
      nullptr,
      g_d21_invalidates,
-    },
+     nullptr,
+     0},
     {"d22",
      nullptr,
      8,
@@ -1135,7 +1207,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d22},
      nullptr,
      g_d22_invalidates,
-    },
+     nullptr,
+     0},
     {"d23",
      nullptr,
      8,
@@ -1146,7 +1219,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d23},
      nullptr,
      g_d23_invalidates,
-    },
+     nullptr,
+     0},
     {"d24",
      nullptr,
      8,
@@ -1157,7 +1231,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d24},
      nullptr,
      g_d24_invalidates,
-    },
+     nullptr,
+     0},
     {"d25",
      nullptr,
      8,
@@ -1168,7 +1243,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d25},
      nullptr,
      g_d25_invalidates,
-    },
+     nullptr,
+     0},
     {"d26",
      nullptr,
      8,
@@ -1179,7 +1255,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d26},
      nullptr,
      g_d26_invalidates,
-    },
+     nullptr,
+     0},
     {"d27",
      nullptr,
      8,
@@ -1190,7 +1267,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d27},
      nullptr,
      g_d27_invalidates,
-    },
+     nullptr,
+     0},
     {"d28",
      nullptr,
      8,
@@ -1201,7 +1279,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d28},
      nullptr,
      g_d28_invalidates,
-    },
+     nullptr,
+     0},
     {"d29",
      nullptr,
      8,
@@ -1212,7 +1291,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d29},
      nullptr,
      g_d29_invalidates,
-    },
+     nullptr,
+     0},
     {"d30",
      nullptr,
      8,
@@ -1223,7 +1303,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d30},
      nullptr,
      g_d30_invalidates,
-    },
+     nullptr,
+     0},
     {"d31",
      nullptr,
      8,
@@ -1234,7 +1315,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_d31},
      nullptr,
      g_d31_invalidates,
-    },
+     nullptr,
+     0},
 
     {"q0",
      nullptr,
@@ -1246,7 +1328,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q0},
      g_q0_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q1",
      nullptr,
      16,
@@ -1257,7 +1340,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q1},
      g_q1_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q2",
      nullptr,
      16,
@@ -1268,7 +1352,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q2},
      g_q2_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q3",
      nullptr,
      16,
@@ -1279,7 +1364,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q3},
      g_q3_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q4",
      nullptr,
      16,
@@ -1290,7 +1376,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q4},
      g_q4_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q5",
      nullptr,
      16,
@@ -1301,7 +1388,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q5},
      g_q5_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q6",
      nullptr,
      16,
@@ -1312,7 +1400,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q6},
      g_q6_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q7",
      nullptr,
      16,
@@ -1323,7 +1412,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q7},
      g_q7_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q8",
      nullptr,
      16,
@@ -1334,7 +1424,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q8},
      g_q8_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q9",
      nullptr,
      16,
@@ -1345,7 +1436,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q9},
      g_q9_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q10",
      nullptr,
      16,
@@ -1356,7 +1448,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q10},
      g_q10_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q11",
      nullptr,
      16,
@@ -1367,7 +1460,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q11},
      g_q11_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q12",
      nullptr,
      16,
@@ -1378,7 +1472,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q12},
      g_q12_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q13",
      nullptr,
      16,
@@ -1389,7 +1484,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q13},
      g_q13_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q14",
      nullptr,
      16,
@@ -1400,7 +1496,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q14},
      g_q14_contains,
      nullptr,
-    },
+     nullptr,
+     0},
     {"q15",
      nullptr,
      16,
@@ -1411,7 +1508,8 @@ static RegisterInfo g_register_infos_arm[] = {
       fpu_q15},
      g_q15_contains,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {"exception",
      nullptr,
@@ -1423,7 +1521,8 @@ static RegisterInfo g_register_infos_arm[] = {
       LLDB_INVALID_REGNUM, exc_exception},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fsr",
      nullptr,
      4,
@@ -1434,7 +1533,8 @@ static RegisterInfo g_register_infos_arm[] = {
       LLDB_INVALID_REGNUM, exc_fsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"far",
      nullptr,
      4,
@@ -1445,7 +1545,8 @@ static RegisterInfo g_register_infos_arm[] = {
       LLDB_INVALID_REGNUM, exc_far},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
 
     {DEFINE_DBG(bvr, 0)},
     {DEFINE_DBG(bvr, 1)},

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
index ccfbd6afbefb..47cedc31bcd7 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h
@@ -489,6 +489,7 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
   {                                                                            \
     #reg, nullptr, 8, GPR_OFFSET(gpr_##reg), lldb::eEncodingUint,              \
         lldb::eFormatHex, GPR64_KIND(reg, generic_kind), nullptr, nullptr,     \
+        nullptr, 0                                                             \
   }
 
 // Defines a 64-bit general purpose register
@@ -496,6 +497,7 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
   {                                                                            \
     #reg, #alt, 8, GPR_OFFSET(gpr_##reg), lldb::eEncodingUint,                 \
         lldb::eFormatHex, GPR64_KIND(reg, generic_kind), nullptr, nullptr,     \
+        nullptr, 0                                                             \
   }
 
 // Defines a 32-bit general purpose pseudo register
@@ -504,14 +506,15 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
     #wreg, nullptr, 4,                                                         \
         GPR_OFFSET(gpr_##xreg) + GPR_W_PSEUDO_REG_ENDIAN_OFFSET,               \
         lldb::eEncodingUint, lldb::eFormatHex, LLDB_KIND(gpr_##wreg),          \
-        g_contained_##xreg, g_##wreg##_invalidates,                            \
+        g_contained_##xreg, g_##wreg##_invalidates, nullptr, 0                 \
   }
 
 // Defines a vector register with 16-byte size
 #define DEFINE_VREG(reg)                                                       \
   {                                                                            \
     #reg, nullptr, 16, FPU_OFFSET(fpu_##reg - fpu_v0), lldb::eEncodingVector,  \
-        lldb::eFormatVectorOfUInt8, VREG_KIND(reg), nullptr, nullptr,          \
+        lldb::eFormatVectorOfUInt8, VREG_KIND(reg), nullptr, nullptr, nullptr, \
+        0                                                                      \
   }
 
 // Defines S and D pseudo registers mapping over corresponding vector register
@@ -519,7 +522,7 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
   {                                                                            \
     #reg, nullptr, size, FPU_OFFSET(fpu_##vreg - fpu_v0) + offset,             \
         lldb::eEncodingIEEE754, lldb::eFormatFloat, LLDB_KIND(fpu_##reg),      \
-        g_contained_##vreg, g_##reg##_invalidates,                             \
+        g_contained_##vreg, g_##reg##_invalidates, nullptr, 0                  \
   }
 
 // Defines miscellaneous status and control registers like cpsr, fpsr etc
@@ -527,13 +530,14 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
   {                                                                            \
     #reg, nullptr, size, TYPE##_OFFSET_NAME(reg), lldb::eEncodingUint,         \
         lldb::eFormatHex, MISC_##TYPE##_KIND(lldb_kind), nullptr, nullptr,     \
+        nullptr, 0                                                             \
   }
 
 // Defines pointer authentication mask registers
 #define DEFINE_EXTENSION_REG(reg)                                              \
   {                                                                            \
     #reg, nullptr, 8, 0, lldb::eEncodingUint, lldb::eFormatHex,                \
-        KIND_ALL_INVALID, nullptr, nullptr,                                    \
+        KIND_ALL_INVALID, nullptr, nullptr, nullptr, 0                         \
   }
 
 static lldb_private::RegisterInfo g_register_infos_arm64_le[] = {

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64_sve.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64_sve.h
index b2837b8f1e98..9551db7e8ebf 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64_sve.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_arm64_sve.h
@@ -309,6 +309,7 @@ static uint32_t g_contained_z31[] = {sve_z31, LLDB_INVALID_REGNUM};
   {                                                                            \
     #vreg, nullptr, 16, 0, lldb::eEncodingVector, lldb::eFormatVectorOfUInt8,  \
         VREG_KIND(vreg), g_contained_##zreg, g_sve_##vreg##_invalidates,       \
+        nullptr, 0                                                             \
   }
 
 // Defines S and D pseudo registers mapping over corresponding vector register
@@ -316,20 +317,21 @@ static uint32_t g_contained_z31[] = {sve_z31, LLDB_INVALID_REGNUM};
   {                                                                            \
     #reg, nullptr, size, 0, lldb::eEncodingIEEE754, lldb::eFormatFloat,        \
         LLDB_KIND(fpu_##reg), g_contained_##zreg, g_sve_##reg##_invalidates,   \
+        nullptr, 0                                                             \
   }
 
 // Defines a Z vector register with 16-byte default size
 #define DEFINE_ZREG(reg)                                                       \
   {                                                                            \
     #reg, nullptr, 16, 0, lldb::eEncodingVector, lldb::eFormatVectorOfUInt8,   \
-        SVE_REG_KIND(reg), nullptr, nullptr,                                   \
+        SVE_REG_KIND(reg), nullptr, nullptr, nullptr, 0                        \
   }
 
 // Defines a P vector register with 2-byte default size
 #define DEFINE_PREG(reg)                                                       \
   {                                                                            \
     #reg, nullptr, 2, 0, lldb::eEncodingVector, lldb::eFormatVectorOfUInt8,    \
-        SVE_REG_KIND(reg), nullptr, nullptr,                                   \
+        SVE_REG_KIND(reg), nullptr, nullptr, nullptr, 0                        \
   }
 
 static lldb_private::RegisterInfo g_register_infos_arm64_sve_le[] = {

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h
index 4b73008adb16..15c7cac544a1 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h
@@ -64,7 +64,7 @@
                       GPR_OFFSET(reg), eEncodingUint, eFormatHex,              \
                                  {kind1, kind2, kind3, kind4,                  \
                                   lldb_##reg##_i386 },                         \
-                                  nullptr, nullptr,                            \
+                                  nullptr, nullptr, nullptr, 0                 \
   }
 
 #define DEFINE_FPR(name, reg, kind1, kind2, kind3, kind4)                      \
@@ -72,7 +72,7 @@
     #name, nullptr, FPR_SIZE(reg), FPR_OFFSET(reg), eEncodingUint, eFormatHex, \
                                            {kind1, kind2, kind3, kind4,        \
                                             lldb_##name##_i386 },              \
-                                            nullptr, nullptr,                  \
+                                            nullptr, nullptr, nullptr, 0       \
   }
 
 // RegisterKind: EHFrame, DWARF, Generic, Process Plugin, LLDB
@@ -84,7 +84,7 @@
             stmm[i]), eEncodingVector, eFormatVectorOfUInt8,                   \
             {ehframe_st##i##_i386, dwarf_st##i##_i386, LLDB_INVALID_REGNUM,    \
              LLDB_INVALID_REGNUM, lldb_st##i##_i386 },                         \
-             nullptr, nullptr,                                                 \
+             nullptr, nullptr, nullptr, 0                                      \
   }
 
 #define DEFINE_FP_MM(reg, i, streg)                                            \
@@ -94,7 +94,7 @@
     {dwarf_mm##i##_i386, dwarf_mm##i##_i386, LLDB_INVALID_REGNUM,              \
      LLDB_INVALID_REGNUM, lldb_mm##i##_i386 },                                 \
     RegisterContextPOSIX_x86::g_contained_##streg##_32,                        \
-    RegisterContextPOSIX_x86::g_invalidate_##streg##_32,                       \
+    RegisterContextPOSIX_x86::g_invalidate_##streg##_32, nullptr, 0            \
   }
 
 #define DEFINE_XMM(reg, i)                                                     \
@@ -104,7 +104,7 @@
             reg[i]), eEncodingVector, eFormatVectorOfUInt8,                    \
             {ehframe_##reg##i##_i386, dwarf_##reg##i##_i386,                   \
              LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, lldb_##reg##i##_i386 }, \
-             nullptr, nullptr,                                                 \
+             nullptr, nullptr, nullptr, 0                                      \
   }
 
 // I believe the YMM registers use dwarf_xmm_%_i386 register numbers and then
@@ -116,7 +116,7 @@
                                   {LLDB_INVALID_REGNUM, dwarf_xmm##i##_i386,   \
                                    LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,   \
                                    lldb_##reg##i##_i386 },                     \
-                                   nullptr, nullptr,                           \
+                                   nullptr, nullptr, nullptr, 0                \
   }
 
 #define DEFINE_BNDR(reg, i)                                                    \
@@ -125,7 +125,7 @@
         LLVM_EXTENSION BNDR_OFFSET(i), eEncodingVector, eFormatVectorOfUInt64, \
         {dwarf_##reg##i##_i386, dwarf_##reg##i##_i386, LLDB_INVALID_REGNUM,    \
          LLDB_INVALID_REGNUM, lldb_##reg##i##_i386 },                          \
-         nullptr, nullptr,                                                     \
+         nullptr, nullptr, nullptr, 0                                          \
   }
 
 #define DEFINE_BNDC(name, i)                                                   \
@@ -135,7 +135,7 @@
            eFormatVectorOfUInt8,                                               \
            {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,     \
             LLDB_INVALID_REGNUM, lldb_##name##_i386 },                         \
-            nullptr, nullptr,                                                  \
+            nullptr, nullptr, nullptr, 0                                       \
   }
 
 #define DEFINE_DR(reg, i)                                                      \
@@ -145,7 +145,7 @@
                   {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                   \
                    LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                   \
                    lldb_##reg##i##_i386 },                                     \
-                   nullptr, nullptr,                                           \
+                   nullptr, nullptr, nullptr, 0                                \
   }
 
 #define DEFINE_GPR_PSEUDO_16(reg16, reg32)                                     \
@@ -156,7 +156,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg16##_i386 },                                     \
                     RegisterContextPOSIX_x86::g_contained_##reg32,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg32,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg32, nullptr, 0 \
   }
 
 #define DEFINE_GPR_PSEUDO_8H(reg8, reg32)                                      \
@@ -167,7 +167,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg8##_i386 },                                      \
                     RegisterContextPOSIX_x86::g_contained_##reg32,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg32,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg32, nullptr, 0 \
   }
 
 #define DEFINE_GPR_PSEUDO_8L(reg8, reg32)                                      \
@@ -178,7 +178,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg8##_i386 },                                      \
                     RegisterContextPOSIX_x86::g_contained_##reg32,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg32,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg32, nullptr, 0 \
   }
 
 static RegisterInfo g_register_infos_i386[] = {

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h
index 60811d65ffc5..32a8c98fce43 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_mips64.h
@@ -30,16 +30,22 @@
                       GPR_OFFSET(reg), eEncodingUint, eFormatHex,              \
                                  {kind1, kind2, kind3, kind4,                  \
                                   gpr_##reg##_mips64 },                        \
-                                  NULL, NULL                                   \
+                                  NULL, NULL, NULL, 0                          \
   }
 
+const uint8_t dwarf_opcode_mips64[] = {
+    llvm::dwarf::DW_OP_regx,  dwarf_sr_mips64,        llvm::dwarf::DW_OP_lit1,
+    llvm::dwarf::DW_OP_lit26, llvm::dwarf::DW_OP_shl, llvm::dwarf::DW_OP_and,
+    llvm::dwarf::DW_OP_lit26, llvm::dwarf::DW_OP_shr};
+
 #define DEFINE_FPR(reg, alt, kind1, kind2, kind3)                              \
   {                                                                            \
     #reg, alt, sizeof(((FPR_freebsd_mips *) 0)->reg),                          \
                       FPR_OFFSET(reg), eEncodingIEEE754, eFormatFloat,         \
                                  {kind1, kind2, kind3, LLDB_INVALID_REGNUM,    \
                                   fpr_##reg##_mips64 },                        \
-                                  NULL, NULL,                                  \
+                                  NULL, NULL, dwarf_opcode_mips64,             \
+                                  sizeof(dwarf_opcode_mips64)                  \
   }
 
 #define DEFINE_FPR_INFO(reg, alt, kind1, kind2, kind3)                         \
@@ -48,7 +54,7 @@
                       FPR_OFFSET(reg), eEncodingUint, eFormatHex,              \
                                  {kind1, kind2, kind3, LLDB_INVALID_REGNUM,    \
                                   fpr_##reg##_mips64 },                        \
-                                  NULL, NULL,                                  \
+                                  NULL, NULL, NULL, 0                          \
   }
 
 

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h
index 0fd0a526f921..09f9430e693f 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_powerpc.h
@@ -24,7 +24,7 @@
                                           dwarf_##reg##_powerpc, lldb_kind,    \
                                           LLDB_INVALID_REGNUM,                 \
                                           gpr_##reg##_powerpc },               \
-                                          NULL, NULL,                          \
+                                          NULL, NULL, NULL, 0                  \
   }
 #define DEFINE_FPR(reg, lldb_kind)                                             \
   {                                                                            \
@@ -32,7 +32,7 @@
                               {dwarf_##reg##_powerpc, dwarf_##reg##_powerpc,   \
                                lldb_kind, LLDB_INVALID_REGNUM,                 \
                                fpr_##reg##_powerpc },                          \
-                               NULL, NULL,                                     \
+                               NULL, NULL, NULL, 0                             \
   }
 #define DEFINE_VMX(reg, lldb_kind)                                             \
   {                                                                            \
@@ -40,7 +40,7 @@
                                {dwarf_##reg##_powerpc, dwarf_##reg##_powerpc,  \
                                 lldb_kind, LLDB_INVALID_REGNUM,                \
                                 vmx_##reg##_powerpc },                         \
-                                NULL, NULL,                                    \
+                                NULL, NULL, NULL, 0                            \
   }
 
 // General purpose registers.            EH_Frame,                  DWARF,
@@ -125,7 +125,8 @@
         LLDB_INVALID_REGNUM, fpr_fpscr_powerpc},                               \
        NULL,                                                                   \
        NULL,                                                                   \
-        },                                                                     \
+       NULL,                                                                   \
+       0},                                                                     \
       DEFINE_VMX(v0, LLDB_INVALID_REGNUM),                                     \
       DEFINE_VMX(v1, LLDB_INVALID_REGNUM),                                     \
       DEFINE_VMX(v2, LLDB_INVALID_REGNUM),                                     \
@@ -168,7 +169,8 @@
         LLDB_INVALID_REGNUM, vmx_vrsave_powerpc},                              \
        NULL,                                                                   \
        NULL,                                                                   \
-        },                                                                     \
+       NULL,                                                                   \
+       0},                                                                     \
       {"vscr",                                                                 \
        NULL,                                                                   \
        4,                                                                      \
@@ -179,7 +181,8 @@
         LLDB_INVALID_REGNUM, vmx_vscr_powerpc},                                \
        NULL,                                                                   \
        NULL,                                                                   \
-       },
+       NULL,                                                                   \
+       0},
 
 static RegisterInfo g_register_infos_powerpc64[] = {
 #define GPR GPR64

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h
index 19f2e5627703..c321b54ac8d4 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64.h
@@ -31,7 +31,7 @@
                                           lldb_kind,                           \
                                           LLDB_INVALID_REGNUM,                 \
                                           gpr_##reg##_ppc64 },                 \
-                                          NULL, NULL,                          \
+                                          NULL, NULL, NULL, 0                  \
   }
 #define DEFINE_FPR_PPC64(reg, alt, lldb_kind)                                  \
   {                                                                            \
@@ -40,7 +40,7 @@
         {ppc64_dwarf::dwarf_##reg##_ppc64,                                     \
          ppc64_dwarf::dwarf_##reg##_ppc64, lldb_kind, LLDB_INVALID_REGNUM,     \
          fpr_##reg##_ppc64 },                                                  \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 #define DEFINE_VMX_PPC64(reg, lldb_kind)                                       \
   {                                                                            \
@@ -49,7 +49,7 @@
         {ppc64_dwarf::dwarf_##reg##_ppc64,                                     \
          ppc64_dwarf::dwarf_##reg##_ppc64, lldb_kind, LLDB_INVALID_REGNUM,     \
          vmx_##reg##_ppc64 },                                                  \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 
 // General purpose registers.
@@ -136,7 +136,8 @@
         LLDB_INVALID_REGNUM, fpr_fpscr_ppc64},                                 \
        NULL,                                                                   \
        NULL,                                                                   \
-       },                                                                      \
+       NULL,                                                                   \
+       0},                                                                     \
       DEFINE_VMX_PPC64(vr0, LLDB_INVALID_REGNUM),                              \
       DEFINE_VMX_PPC64(vr1, LLDB_INVALID_REGNUM),                              \
       DEFINE_VMX_PPC64(vr2, LLDB_INVALID_REGNUM),                              \
@@ -179,7 +180,8 @@
         LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, vmx_vscr_ppc64},             \
        NULL,                                                                   \
        NULL,                                                                   \
-       },                                                                      \
+       NULL,                                                                   \
+       0},                                                                     \
       {"vrsave",                                                               \
        NULL,                                                                   \
        4,                                                                      \
@@ -191,7 +193,8 @@
         LLDB_INVALID_REGNUM, vmx_vrsave_ppc64},                                \
        NULL,                                                                   \
        NULL,                                                                   \
-       },  /* */
+       NULL,                                                                   \
+       0},  /* */
 
 typedef struct _GPR_PPC64 {
   uint64_t r0;

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h
index f8f8651c856c..557d476ae009 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h
@@ -31,7 +31,7 @@
                                           lldb_kind,                           \
                                           LLDB_INVALID_REGNUM,                 \
                                           gpr_##reg##_ppc64le },               \
-                                          NULL, NULL,                          \
+                                          NULL, NULL, NULL, 0                  \
   }
 #define DEFINE_FPR(reg, alt, lldb_kind)                                        \
   {                                                                            \
@@ -39,7 +39,7 @@
         {ppc64le_dwarf::dwarf_##reg##_ppc64le,                                 \
          ppc64le_dwarf::dwarf_##reg##_ppc64le, lldb_kind, LLDB_INVALID_REGNUM, \
          fpr_##reg##_ppc64le },                                                \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 #define DEFINE_VMX(reg, lldb_kind)                                             \
   {                                                                            \
@@ -48,7 +48,7 @@
         {ppc64le_dwarf::dwarf_##reg##_ppc64le,                                 \
          ppc64le_dwarf::dwarf_##reg##_ppc64le, lldb_kind, LLDB_INVALID_REGNUM, \
          vmx_##reg##_ppc64le },                                                \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 #define DEFINE_VSX(reg, lldb_kind)                                             \
   {                                                                            \
@@ -57,7 +57,7 @@
         {ppc64le_dwarf::dwarf_##reg##_ppc64le,                                 \
          ppc64le_dwarf::dwarf_##reg##_ppc64le, lldb_kind, LLDB_INVALID_REGNUM, \
          vsx_##reg##_ppc64le },                                                \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 
 // General purpose registers.
@@ -147,7 +147,8 @@
         LLDB_INVALID_REGNUM, fpr_fpscr_ppc64le},                               \
        NULL,                                                                   \
        NULL,                                                                   \
-       },                                                                     \
+       NULL,                                                                   \
+       0},                                                                     \
       DEFINE_VMX(vr0, LLDB_INVALID_REGNUM),                                    \
       DEFINE_VMX(vr1, LLDB_INVALID_REGNUM),                                    \
       DEFINE_VMX(vr2, LLDB_INVALID_REGNUM),                                    \
@@ -190,7 +191,8 @@
         LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, vmx_vscr_ppc64le},           \
        NULL,                                                                   \
        NULL,                                                                   \
-       },                                                                     \
+       NULL,                                                                   \
+       0},                                                                     \
       {"vrsave",                                                               \
        NULL,                                                                   \
        4,                                                                      \
@@ -202,7 +204,8 @@
         LLDB_INVALID_REGNUM, vmx_vrsave_ppc64le},                              \
        NULL,                                                                   \
        NULL,                                                                   \
-       },                                                                     \
+       NULL,                                                                   \
+       0},                                                                     \
       DEFINE_VSX(vs0, LLDB_INVALID_REGNUM),                                    \
       DEFINE_VSX(vs1, LLDB_INVALID_REGNUM),                                    \
       DEFINE_VSX(vs2, LLDB_INVALID_REGNUM),                                    \

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h
index 65878b04eed8..faeb92114b1e 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_s390x.h
@@ -27,7 +27,7 @@
     #name, alt, size, offset, eEncodingUint, eFormatHex,                       \
         {dwarf_##name##_s390x, dwarf_##name##_s390x, generic,                  \
          LLDB_INVALID_REGNUM, lldb_##name##_s390x },                           \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 
 #define DEFINE_GPR_NODWARF(name, size, offset, alt, generic)                   \
@@ -35,7 +35,7 @@
     #name, alt, size, offset, eEncodingUint, eFormatHex,                       \
         {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, generic,                    \
          LLDB_INVALID_REGNUM, lldb_##name##_s390x },                           \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 
 #define DEFINE_FPR(name, size, offset)                                         \
@@ -43,7 +43,7 @@
     #name, NULL, size, offset, eEncodingUint, eFormatHex,                      \
         {dwarf_##name##_s390x, dwarf_##name##_s390x, LLDB_INVALID_REGNUM,      \
          LLDB_INVALID_REGNUM, lldb_##name##_s390x },                           \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 
 #define DEFINE_FPR_NODWARF(name, size, offset)                                 \
@@ -51,7 +51,7 @@
     #name, NULL, size, offset, eEncodingUint, eFormatHex,                      \
         {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,        \
          LLDB_INVALID_REGNUM, lldb_##name##_s390x },                           \
-         NULL, NULL,                                                           \
+         NULL, NULL, NULL, 0                                                   \
   }
 
 static RegisterInfo g_register_infos_s390x[] = {

diff  --git a/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h b/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h
index 1de67165fb2f..c956005c49b4 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h
+++ b/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h
@@ -67,7 +67,7 @@
                       GPR_OFFSET(reg), eEncodingUint, eFormatHex,              \
                                  {kind1, kind2, kind3, kind4,                  \
                                   lldb_##reg##_x86_64 },                       \
-                                  nullptr, nullptr,                            \
+                                  nullptr, nullptr, nullptr, 0                 \
   }
 
 #define DEFINE_FPR(name, reg, kind1, kind2, kind3, kind4)                      \
@@ -75,7 +75,7 @@
     #name, nullptr, FPR_SIZE(reg), FPR_OFFSET(reg), eEncodingUint, eFormatHex, \
                                            {kind1, kind2, kind3, kind4,        \
                                             lldb_##name##_x86_64 },            \
-                                            nullptr, nullptr,                  \
+                                            nullptr, nullptr, nullptr, 0       \
   }
 
 #define DEFINE_FP_ST(reg, i)                                                   \
@@ -85,7 +85,7 @@
             stmm[i]), eEncodingVector, eFormatVectorOfUInt8,                   \
             {dwarf_st##i##_x86_64, dwarf_st##i##_x86_64, LLDB_INVALID_REGNUM,  \
              LLDB_INVALID_REGNUM, lldb_st##i##_x86_64 },                       \
-             nullptr, nullptr,                                                 \
+             nullptr, nullptr, nullptr, 0                                      \
   }
 
 #define DEFINE_FP_MM(reg, i, streg)                                            \
@@ -95,7 +95,7 @@
     {dwarf_mm##i##_x86_64, dwarf_mm##i##_x86_64, LLDB_INVALID_REGNUM,          \
      LLDB_INVALID_REGNUM, lldb_mm##i##_x86_64 },                               \
     RegisterContextPOSIX_x86::g_contained_##streg##_64,                        \
-    RegisterContextPOSIX_x86::g_invalidate_##streg##_64,                       \
+    RegisterContextPOSIX_x86::g_invalidate_##streg##_64, nullptr, 0            \
   }
 
 #define DEFINE_XMM(reg, i)                                                     \
@@ -106,7 +106,7 @@
             {dwarf_##reg##i##_x86_64, dwarf_##reg##i##_x86_64,                 \
              LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                         \
              lldb_##reg##i##_x86_64 },                                         \
-             nullptr, nullptr,                                                 \
+             nullptr, nullptr, nullptr, 0                                      \
   }
 
 #define DEFINE_YMM(reg, i)                                                     \
@@ -117,7 +117,7 @@
                                    dwarf_##reg##i##h_x86_64,                   \
                                    LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,   \
                                    lldb_##reg##i##_x86_64 },                   \
-                                   nullptr, nullptr,                           \
+                                   nullptr, nullptr, nullptr, 0                \
   }
 
 #define DEFINE_BNDR(reg, i)                                                    \
@@ -128,7 +128,7 @@
                                     dwarf_##reg##i##_x86_64,                   \
                                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,  \
                                     lldb_##reg##i##_x86_64 },                  \
-                                    nullptr, nullptr,                          \
+                                    nullptr, nullptr, nullptr, 0               \
   }
 
 #define DEFINE_BNDC(name, i)                                                   \
@@ -137,7 +137,7 @@
         LLVM_EXTENSION BNDC_OFFSET(i), eEncodingVector, eFormatVectorOfUInt8,  \
         {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,        \
          LLDB_INVALID_REGNUM, lldb_##name##_x86_64 },                          \
-         nullptr, nullptr,                                                     \
+         nullptr, nullptr, nullptr, 0                                          \
   }
 
 #define DEFINE_DR(reg, i)                                                      \
@@ -147,7 +147,7 @@
                   {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                   \
                    LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                   \
                    lldb_##reg##i##_x86_64 },                                   \
-                   nullptr, nullptr,                                           \
+                   nullptr, nullptr, nullptr, 0                                \
   }
 
 #define DEFINE_GPR_PSEUDO_32(reg32, reg64)                                     \
@@ -158,7 +158,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg32##_x86_64 },                                   \
                     RegisterContextPOSIX_x86::g_contained_##reg64,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg64,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg64, nullptr, 0 \
   }
 
 #define DEFINE_GPR_PSEUDO_16(reg16, reg64)                                     \
@@ -169,7 +169,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg16##_x86_64 },                                   \
                     RegisterContextPOSIX_x86::g_contained_##reg64,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg64,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg64, nullptr, 0 \
   }
 
 #define DEFINE_GPR_PSEUDO_8H(reg8, reg64)                                      \
@@ -180,7 +180,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg8##_x86_64 },                                    \
                     RegisterContextPOSIX_x86::g_contained_##reg64,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg64,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg64, nullptr, 0 \
   }
 
 #define DEFINE_GPR_PSEUDO_8L(reg8, reg64)                                      \
@@ -191,7 +191,7 @@
                     LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,                  \
                     lldb_##reg8##_x86_64 },                                    \
                     RegisterContextPOSIX_x86::g_contained_##reg64,             \
-                    RegisterContextPOSIX_x86::g_invalidate_##reg64,            \
+                    RegisterContextPOSIX_x86::g_invalidate_##reg64, nullptr, 0 \
   }
 
 #define DEFINE_FPR_32(name, reg, kind1, kind2, kind3, kind4, reg64)            \
@@ -199,7 +199,7 @@
     #name, nullptr, FPR_SIZE(reg), FPR_OFFSET(reg), eEncodingUint, eFormatHex, \
     {kind1, kind2, kind3, kind4, lldb_##name##_x86_64 },                       \
     RegisterContextPOSIX_x86::g_contained_##reg64,                             \
-    RegisterContextPOSIX_x86::g_invalidate_##reg64,                            \
+    RegisterContextPOSIX_x86::g_invalidate_##reg64,           nullptr, 0       \
   }
 
 // clang-format off

diff  --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
index 8a86734b3da9..cd8537812eff 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
@@ -1827,6 +1827,13 @@ GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo(
     response.PutChar(';');
   }
 
+  if (reg_info->dynamic_size_dwarf_expr_bytes) {
+    const size_t dwarf_opcode_len = reg_info->dynamic_size_dwarf_len;
+    response.PutCString("dynamic_size_dwarf_expr_bytes:");
+    for (uint32_t i = 0; i < dwarf_opcode_len; ++i)
+      response.PutHex8(reg_info->dynamic_size_dwarf_expr_bytes[i]);
+    response.PutChar(';');
+  }
   return SendPacketNoLock(response.GetString());
 }
 
@@ -2064,8 +2071,12 @@ GDBRemoteCommunicationServerLLGS::Handle_P(StringExtractorGDBRemote &packet) {
     return SendErrorResponse(0x47);
   }
 
-  if (reg_size != reg_info->byte_size)
+  // The dwarf expression are evaluate on host site which may cause register
+  // size to change Hence the reg_size may not be same as reg_info->bytes_size
+  if ((reg_size != reg_info->byte_size) &&
+      !(reg_info->dynamic_size_dwarf_expr_bytes)) {
     return SendIllFormedResponse(packet, "P packet register size is incorrect");
+  }
 
   // Build the reginfos response.
   StreamGDBRemote response;
@@ -2905,6 +2916,14 @@ GDBRemoteCommunicationServerLLGS::BuildTargetXml() {
       response.Printf("\" ");
     }
 
+    if (reg_info->dynamic_size_dwarf_expr_bytes) {
+      const size_t dwarf_opcode_len = reg_info->dynamic_size_dwarf_len;
+      response.PutCString("dynamic_size_dwarf_expr_bytes=\"");
+      for (uint32_t i = 0; i < dwarf_opcode_len; ++i)
+        response.PutHex8(reg_info->dynamic_size_dwarf_expr_bytes[i]);
+      response.Printf("\" ");
+    }
+
     response.Printf("/>");
   }
 

diff  --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
index b80498069f16..92a5227a9a3a 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
@@ -69,7 +69,14 @@ size_t GDBRemoteRegisterContext::GetRegisterCount() {
 
 const RegisterInfo *
 GDBRemoteRegisterContext::GetRegisterInfoAtIndex(size_t reg) {
-  return m_reg_info_sp->GetRegisterInfoAtIndex(reg);
+  RegisterInfo *reg_info = m_reg_info_sp->GetRegisterInfoAtIndex(reg);
+
+  if (reg_info && reg_info->dynamic_size_dwarf_expr_bytes) {
+    const ArchSpec &arch = m_thread.GetProcess()->GetTarget().GetArchitecture();
+    uint8_t reg_size = UpdateDynamicRegisterSize(arch, reg_info);
+    reg_info->byte_size = reg_size;
+  }
+  return reg_info;
 }
 
 size_t GDBRemoteRegisterContext::GetRegisterSetCount() {
@@ -825,115 +832,115 @@ void GDBRemoteDynamicRegisterInfo::HardcodeARMRegisters(bool from_scratch) {
 
   // clang-format off
     static RegisterInfo g_register_infos[] = {
-//   NAME     ALT     SZ   OFF  ENCODING          FORMAT          EH_FRAME             DWARF                GENERIC                 PROCESS PLUGIN  LLDB    VALUE REGS    INVALIDATE REGS
-//   ======   ======  ===  ===  =============     ==========      ===================  ===================  ======================  =============   ====    ==========    ===============
-    { "r0",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r0,          dwarf_r0,            LLDB_REGNUM_GENERIC_ARG1,0,               0 },     nullptr,           nullptr },
-    { "r1",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r1,          dwarf_r1,            LLDB_REGNUM_GENERIC_ARG2,1,               1 },     nullptr,           nullptr },
-    { "r2",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r2,          dwarf_r2,            LLDB_REGNUM_GENERIC_ARG3,2,               2 },     nullptr,           nullptr },
-    { "r3",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r3,          dwarf_r3,            LLDB_REGNUM_GENERIC_ARG4,3,               3 },     nullptr,           nullptr },
-    { "r4",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r4,          dwarf_r4,            LLDB_INVALID_REGNUM,     4,               4 },     nullptr,           nullptr },
-    { "r5",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r5,          dwarf_r5,            LLDB_INVALID_REGNUM,     5,               5 },     nullptr,           nullptr },
-    { "r6",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r6,          dwarf_r6,            LLDB_INVALID_REGNUM,     6,               6 },     nullptr,           nullptr },
-    { "r7",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r7,          dwarf_r7,            LLDB_REGNUM_GENERIC_FP,  7,               7 },     nullptr,           nullptr },
-    { "r8",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r8,          dwarf_r8,            LLDB_INVALID_REGNUM,     8,               8 },     nullptr,           nullptr },
-    { "r9",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r9,          dwarf_r9,            LLDB_INVALID_REGNUM,     9,               9 },     nullptr,           nullptr },
-    { "r10", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r10,         dwarf_r10,           LLDB_INVALID_REGNUM,    10,              10 },     nullptr,           nullptr },
-    { "r11", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r11,         dwarf_r11,           LLDB_INVALID_REGNUM,    11,              11 },     nullptr,           nullptr },
-    { "r12", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r12,         dwarf_r12,           LLDB_INVALID_REGNUM,    12,              12 },     nullptr,           nullptr },
-    { "sp",     "r13",  4,   0, eEncodingUint,    eFormatHex,   { ehframe_sp,          dwarf_sp,            LLDB_REGNUM_GENERIC_SP, 13,              13 },     nullptr,           nullptr },
-    { "lr",     "r14",  4,   0, eEncodingUint,    eFormatHex,   { ehframe_lr,          dwarf_lr,            LLDB_REGNUM_GENERIC_RA, 14,              14 },     nullptr,           nullptr },
-    { "pc",     "r15",  4,   0, eEncodingUint,    eFormatHex,   { ehframe_pc,          dwarf_pc,            LLDB_REGNUM_GENERIC_PC, 15,              15 },     nullptr,           nullptr },
-    { "f0",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    16,              16 },     nullptr,           nullptr },
-    { "f1",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    17,              17 },     nullptr,           nullptr },
-    { "f2",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    18,              18 },     nullptr,           nullptr },
-    { "f3",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    19,              19 },     nullptr,           nullptr },
-    { "f4",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    20,              20 },     nullptr,           nullptr },
-    { "f5",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    21,              21 },     nullptr,           nullptr },
-    { "f6",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    22,              22 },     nullptr,           nullptr },
-    { "f7",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    23,              23 },     nullptr,           nullptr },
-    { "fps", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    24,              24 },     nullptr,           nullptr },
-    { "cpsr","flags",   4,   0, eEncodingUint,    eFormatHex,   { ehframe_cpsr,        dwarf_cpsr,          LLDB_INVALID_REGNUM,    25,              25 },     nullptr,           nullptr },
-    { "s0",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s0,            LLDB_INVALID_REGNUM,    26,              26 },     nullptr,           nullptr },
-    { "s1",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s1,            LLDB_INVALID_REGNUM,    27,              27 },     nullptr,           nullptr },
-    { "s2",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s2,            LLDB_INVALID_REGNUM,    28,              28 },     nullptr,           nullptr },
-    { "s3",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s3,            LLDB_INVALID_REGNUM,    29,              29 },     nullptr,           nullptr },
-    { "s4",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s4,            LLDB_INVALID_REGNUM,    30,              30 },     nullptr,           nullptr },
-    { "s5",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s5,            LLDB_INVALID_REGNUM,    31,              31 },     nullptr,           nullptr },
-    { "s6",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s6,            LLDB_INVALID_REGNUM,    32,              32 },     nullptr,           nullptr },
-    { "s7",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s7,            LLDB_INVALID_REGNUM,    33,              33 },     nullptr,           nullptr },
-    { "s8",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s8,            LLDB_INVALID_REGNUM,    34,              34 },     nullptr,           nullptr },
-    { "s9",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s9,            LLDB_INVALID_REGNUM,    35,              35 },     nullptr,           nullptr },
-    { "s10", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s10,           LLDB_INVALID_REGNUM,    36,              36 },     nullptr,           nullptr },
-    { "s11", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s11,           LLDB_INVALID_REGNUM,    37,              37 },     nullptr,           nullptr },
-    { "s12", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s12,           LLDB_INVALID_REGNUM,    38,              38 },     nullptr,           nullptr },
-    { "s13", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s13,           LLDB_INVALID_REGNUM,    39,              39 },     nullptr,           nullptr },
-    { "s14", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s14,           LLDB_INVALID_REGNUM,    40,              40 },     nullptr,           nullptr },
-    { "s15", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s15,           LLDB_INVALID_REGNUM,    41,              41 },     nullptr,           nullptr },
-    { "s16", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s16,           LLDB_INVALID_REGNUM,    42,              42 },     nullptr,           nullptr },
-    { "s17", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s17,           LLDB_INVALID_REGNUM,    43,              43 },     nullptr,           nullptr },
-    { "s18", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s18,           LLDB_INVALID_REGNUM,    44,              44 },     nullptr,           nullptr },
-    { "s19", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s19,           LLDB_INVALID_REGNUM,    45,              45 },     nullptr,           nullptr },
-    { "s20", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s20,           LLDB_INVALID_REGNUM,    46,              46 },     nullptr,           nullptr },
-    { "s21", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s21,           LLDB_INVALID_REGNUM,    47,              47 },     nullptr,           nullptr },
-    { "s22", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s22,           LLDB_INVALID_REGNUM,    48,              48 },     nullptr,           nullptr },
-    { "s23", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s23,           LLDB_INVALID_REGNUM,    49,              49 },     nullptr,           nullptr },
-    { "s24", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s24,           LLDB_INVALID_REGNUM,    50,              50 },     nullptr,           nullptr },
-    { "s25", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s25,           LLDB_INVALID_REGNUM,    51,              51 },     nullptr,           nullptr },
-    { "s26", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s26,           LLDB_INVALID_REGNUM,    52,              52 },     nullptr,           nullptr },
-    { "s27", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s27,           LLDB_INVALID_REGNUM,    53,              53 },     nullptr,           nullptr },
-    { "s28", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s28,           LLDB_INVALID_REGNUM,    54,              54 },     nullptr,           nullptr },
-    { "s29", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s29,           LLDB_INVALID_REGNUM,    55,              55 },     nullptr,           nullptr },
-    { "s30", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s30,           LLDB_INVALID_REGNUM,    56,              56 },     nullptr,           nullptr },
-    { "s31", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s31,           LLDB_INVALID_REGNUM,    57,              57 },     nullptr,           nullptr },
-    { "fpscr",nullptr,  4,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    58,              58 },     nullptr,           nullptr },
-    { "d16", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d16,           LLDB_INVALID_REGNUM,    59,              59 },     nullptr,           nullptr },
-    { "d17", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d17,           LLDB_INVALID_REGNUM,    60,              60 },     nullptr,           nullptr },
-    { "d18", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d18,           LLDB_INVALID_REGNUM,    61,              61 },     nullptr,           nullptr },
-    { "d19", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d19,           LLDB_INVALID_REGNUM,    62,              62 },     nullptr,           nullptr },
-    { "d20", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d20,           LLDB_INVALID_REGNUM,    63,              63 },     nullptr,           nullptr },
-    { "d21", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d21,           LLDB_INVALID_REGNUM,    64,              64 },     nullptr,           nullptr },
-    { "d22", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d22,           LLDB_INVALID_REGNUM,    65,              65 },     nullptr,           nullptr },
-    { "d23", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d23,           LLDB_INVALID_REGNUM,    66,              66 },     nullptr,           nullptr },
-    { "d24", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d24,           LLDB_INVALID_REGNUM,    67,              67 },     nullptr,           nullptr },
-    { "d25", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d25,           LLDB_INVALID_REGNUM,    68,              68 },     nullptr,           nullptr },
-    { "d26", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d26,           LLDB_INVALID_REGNUM,    69,              69 },     nullptr,           nullptr },
-    { "d27", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d27,           LLDB_INVALID_REGNUM,    70,              70 },     nullptr,           nullptr },
-    { "d28", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d28,           LLDB_INVALID_REGNUM,    71,              71 },     nullptr,           nullptr },
-    { "d29", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d29,           LLDB_INVALID_REGNUM,    72,              72 },     nullptr,           nullptr },
-    { "d30", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d30,           LLDB_INVALID_REGNUM,    73,              73 },     nullptr,           nullptr },
-    { "d31", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d31,           LLDB_INVALID_REGNUM,    74,              74 },     nullptr,           nullptr },
-    { "d0",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d0,            LLDB_INVALID_REGNUM,    75,              75 },   g_d0_regs,           nullptr },
-    { "d1",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d1,            LLDB_INVALID_REGNUM,    76,              76 },   g_d1_regs,           nullptr },
-    { "d2",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d2,            LLDB_INVALID_REGNUM,    77,              77 },   g_d2_regs,           nullptr },
-    { "d3",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d3,            LLDB_INVALID_REGNUM,    78,              78 },   g_d3_regs,           nullptr },
-    { "d4",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d4,            LLDB_INVALID_REGNUM,    79,              79 },   g_d4_regs,           nullptr },
-    { "d5",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d5,            LLDB_INVALID_REGNUM,    80,              80 },   g_d5_regs,           nullptr },
-    { "d6",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d6,            LLDB_INVALID_REGNUM,    81,              81 },   g_d6_regs,           nullptr },
-    { "d7",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d7,            LLDB_INVALID_REGNUM,    82,              82 },   g_d7_regs,           nullptr },
-    { "d8",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d8,            LLDB_INVALID_REGNUM,    83,              83 },   g_d8_regs,           nullptr },
-    { "d9",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d9,            LLDB_INVALID_REGNUM,    84,              84 },   g_d9_regs,           nullptr },
-    { "d10", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d10,           LLDB_INVALID_REGNUM,    85,              85 },  g_d10_regs,           nullptr },
-    { "d11", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d11,           LLDB_INVALID_REGNUM,    86,              86 },  g_d11_regs,           nullptr },
-    { "d12", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d12,           LLDB_INVALID_REGNUM,    87,              87 },  g_d12_regs,           nullptr },
-    { "d13", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d13,           LLDB_INVALID_REGNUM,    88,              88 },  g_d13_regs,           nullptr },
-    { "d14", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d14,           LLDB_INVALID_REGNUM,    89,              89 },  g_d14_regs,           nullptr },
-    { "d15", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d15,           LLDB_INVALID_REGNUM,    90,              90 },  g_d15_regs,           nullptr },
-    { "q0",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q0,    LLDB_INVALID_REGNUM,    91,              91 },   g_q0_regs,           nullptr },
-    { "q1",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q1,    LLDB_INVALID_REGNUM,    92,              92 },   g_q1_regs,           nullptr },
-    { "q2",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q2,    LLDB_INVALID_REGNUM,    93,              93 },   g_q2_regs,           nullptr },
-    { "q3",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q3,    LLDB_INVALID_REGNUM,    94,              94 },   g_q3_regs,           nullptr },
-    { "q4",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q4,    LLDB_INVALID_REGNUM,    95,              95 },   g_q4_regs,           nullptr },
-    { "q5",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q5,    LLDB_INVALID_REGNUM,    96,              96 },   g_q5_regs,           nullptr },
-    { "q6",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q6,    LLDB_INVALID_REGNUM,    97,              97 },   g_q6_regs,           nullptr },
-    { "q7",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q7,    LLDB_INVALID_REGNUM,    98,              98 },   g_q7_regs,           nullptr },
-    { "q8",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q8,    LLDB_INVALID_REGNUM,    99,              99 },   g_q8_regs,           nullptr },
-    { "q9",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q9,    LLDB_INVALID_REGNUM,   100,             100 },   g_q9_regs,           nullptr },
-    { "q10", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q10,   LLDB_INVALID_REGNUM,   101,             101 },  g_q10_regs,           nullptr },
-    { "q11", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q11,   LLDB_INVALID_REGNUM,   102,             102 },  g_q11_regs,           nullptr },
-    { "q12", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q12,   LLDB_INVALID_REGNUM,   103,             103 },  g_q12_regs,           nullptr },
-    { "q13", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q13,   LLDB_INVALID_REGNUM,   104,             104 },  g_q13_regs,           nullptr },
-    { "q14", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q14,   LLDB_INVALID_REGNUM,   105,             105 },  g_q14_regs,           nullptr },
-    { "q15", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q15,   LLDB_INVALID_REGNUM,   106,             106 },  g_q15_regs,           nullptr }
+//   NAME     ALT     SZ   OFF  ENCODING          FORMAT          EH_FRAME             DWARF                GENERIC                 PROCESS PLUGIN  LLDB    VALUE REGS    INVALIDATE REGS SIZE EXPR SIZE LEN
+//   ======   ======  ===  ===  =============     ==========      ===================  ===================  ======================  =============   ====    ==========    =============== ========= ========
+    { "r0",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r0,          dwarf_r0,            LLDB_REGNUM_GENERIC_ARG1,0,               0 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r1",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r1,          dwarf_r1,            LLDB_REGNUM_GENERIC_ARG2,1,               1 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r2",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r2,          dwarf_r2,            LLDB_REGNUM_GENERIC_ARG3,2,               2 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r3",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r3,          dwarf_r3,            LLDB_REGNUM_GENERIC_ARG4,3,               3 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r4",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r4,          dwarf_r4,            LLDB_INVALID_REGNUM,     4,               4 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r5",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r5,          dwarf_r5,            LLDB_INVALID_REGNUM,     5,               5 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r6",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r6,          dwarf_r6,            LLDB_INVALID_REGNUM,     6,               6 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r7",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r7,          dwarf_r7,            LLDB_REGNUM_GENERIC_FP,  7,               7 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r8",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r8,          dwarf_r8,            LLDB_INVALID_REGNUM,     8,               8 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r9",  nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r9,          dwarf_r9,            LLDB_INVALID_REGNUM,     9,               9 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r10", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r10,         dwarf_r10,           LLDB_INVALID_REGNUM,    10,              10 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r11", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r11,         dwarf_r11,           LLDB_INVALID_REGNUM,    11,              11 },     nullptr,           nullptr,  nullptr,       0 },
+    { "r12", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { ehframe_r12,         dwarf_r12,           LLDB_INVALID_REGNUM,    12,              12 },     nullptr,           nullptr,  nullptr,       0 },
+    { "sp",     "r13",  4,   0, eEncodingUint,    eFormatHex,   { ehframe_sp,          dwarf_sp,            LLDB_REGNUM_GENERIC_SP, 13,              13 },     nullptr,           nullptr,  nullptr,       0 },
+    { "lr",     "r14",  4,   0, eEncodingUint,    eFormatHex,   { ehframe_lr,          dwarf_lr,            LLDB_REGNUM_GENERIC_RA, 14,              14 },     nullptr,           nullptr,  nullptr,       0 },
+    { "pc",     "r15",  4,   0, eEncodingUint,    eFormatHex,   { ehframe_pc,          dwarf_pc,            LLDB_REGNUM_GENERIC_PC, 15,              15 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f0",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    16,              16 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f1",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    17,              17 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f2",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    18,              18 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f3",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    19,              19 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f4",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    20,              20 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f5",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    21,              21 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f6",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    22,              22 },     nullptr,           nullptr,  nullptr,       0 },
+    { "f7",  nullptr,  12,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    23,              23 },     nullptr,           nullptr,  nullptr,       0 },
+    { "fps", nullptr,   4,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    24,              24 },     nullptr,           nullptr,  nullptr,       0 },
+    { "cpsr","flags",   4,   0, eEncodingUint,    eFormatHex,   { ehframe_cpsr,        dwarf_cpsr,          LLDB_INVALID_REGNUM,    25,              25 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s0",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s0,            LLDB_INVALID_REGNUM,    26,              26 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s1",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s1,            LLDB_INVALID_REGNUM,    27,              27 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s2",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s2,            LLDB_INVALID_REGNUM,    28,              28 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s3",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s3,            LLDB_INVALID_REGNUM,    29,              29 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s4",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s4,            LLDB_INVALID_REGNUM,    30,              30 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s5",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s5,            LLDB_INVALID_REGNUM,    31,              31 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s6",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s6,            LLDB_INVALID_REGNUM,    32,              32 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s7",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s7,            LLDB_INVALID_REGNUM,    33,              33 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s8",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s8,            LLDB_INVALID_REGNUM,    34,              34 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s9",  nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s9,            LLDB_INVALID_REGNUM,    35,              35 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s10", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s10,           LLDB_INVALID_REGNUM,    36,              36 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s11", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s11,           LLDB_INVALID_REGNUM,    37,              37 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s12", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s12,           LLDB_INVALID_REGNUM,    38,              38 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s13", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s13,           LLDB_INVALID_REGNUM,    39,              39 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s14", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s14,           LLDB_INVALID_REGNUM,    40,              40 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s15", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s15,           LLDB_INVALID_REGNUM,    41,              41 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s16", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s16,           LLDB_INVALID_REGNUM,    42,              42 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s17", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s17,           LLDB_INVALID_REGNUM,    43,              43 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s18", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s18,           LLDB_INVALID_REGNUM,    44,              44 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s19", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s19,           LLDB_INVALID_REGNUM,    45,              45 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s20", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s20,           LLDB_INVALID_REGNUM,    46,              46 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s21", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s21,           LLDB_INVALID_REGNUM,    47,              47 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s22", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s22,           LLDB_INVALID_REGNUM,    48,              48 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s23", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s23,           LLDB_INVALID_REGNUM,    49,              49 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s24", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s24,           LLDB_INVALID_REGNUM,    50,              50 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s25", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s25,           LLDB_INVALID_REGNUM,    51,              51 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s26", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s26,           LLDB_INVALID_REGNUM,    52,              52 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s27", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s27,           LLDB_INVALID_REGNUM,    53,              53 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s28", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s28,           LLDB_INVALID_REGNUM,    54,              54 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s29", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s29,           LLDB_INVALID_REGNUM,    55,              55 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s30", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s30,           LLDB_INVALID_REGNUM,    56,              56 },     nullptr,           nullptr,  nullptr,       0 },
+    { "s31", nullptr,   4,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_s31,           LLDB_INVALID_REGNUM,    57,              57 },     nullptr,           nullptr,  nullptr,       0 },
+    { "fpscr",nullptr,  4,   0, eEncodingUint,    eFormatHex,   { LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,    58,              58 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d16", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d16,           LLDB_INVALID_REGNUM,    59,              59 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d17", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d17,           LLDB_INVALID_REGNUM,    60,              60 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d18", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d18,           LLDB_INVALID_REGNUM,    61,              61 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d19", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d19,           LLDB_INVALID_REGNUM,    62,              62 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d20", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d20,           LLDB_INVALID_REGNUM,    63,              63 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d21", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d21,           LLDB_INVALID_REGNUM,    64,              64 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d22", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d22,           LLDB_INVALID_REGNUM,    65,              65 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d23", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d23,           LLDB_INVALID_REGNUM,    66,              66 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d24", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d24,           LLDB_INVALID_REGNUM,    67,              67 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d25", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d25,           LLDB_INVALID_REGNUM,    68,              68 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d26", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d26,           LLDB_INVALID_REGNUM,    69,              69 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d27", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d27,           LLDB_INVALID_REGNUM,    70,              70 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d28", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d28,           LLDB_INVALID_REGNUM,    71,              71 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d29", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d29,           LLDB_INVALID_REGNUM,    72,              72 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d30", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d30,           LLDB_INVALID_REGNUM,    73,              73 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d31", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d31,           LLDB_INVALID_REGNUM,    74,              74 },     nullptr,           nullptr,  nullptr,       0 },
+    { "d0",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d0,            LLDB_INVALID_REGNUM,    75,              75 },   g_d0_regs,           nullptr,  nullptr,       0 },
+    { "d1",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d1,            LLDB_INVALID_REGNUM,    76,              76 },   g_d1_regs,           nullptr,  nullptr,       0 },
+    { "d2",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d2,            LLDB_INVALID_REGNUM,    77,              77 },   g_d2_regs,           nullptr,  nullptr,       0 },
+    { "d3",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d3,            LLDB_INVALID_REGNUM,    78,              78 },   g_d3_regs,           nullptr,  nullptr,       0 },
+    { "d4",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d4,            LLDB_INVALID_REGNUM,    79,              79 },   g_d4_regs,           nullptr,  nullptr,       0 },
+    { "d5",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d5,            LLDB_INVALID_REGNUM,    80,              80 },   g_d5_regs,           nullptr,  nullptr,       0 },
+    { "d6",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d6,            LLDB_INVALID_REGNUM,    81,              81 },   g_d6_regs,           nullptr,  nullptr,       0 },
+    { "d7",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d7,            LLDB_INVALID_REGNUM,    82,              82 },   g_d7_regs,           nullptr,  nullptr,       0 },
+    { "d8",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d8,            LLDB_INVALID_REGNUM,    83,              83 },   g_d8_regs,           nullptr,  nullptr,       0 },
+    { "d9",  nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d9,            LLDB_INVALID_REGNUM,    84,              84 },   g_d9_regs,           nullptr,  nullptr,       0 },
+    { "d10", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d10,           LLDB_INVALID_REGNUM,    85,              85 },  g_d10_regs,           nullptr,  nullptr,       0 },
+    { "d11", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d11,           LLDB_INVALID_REGNUM,    86,              86 },  g_d11_regs,           nullptr,  nullptr,       0 },
+    { "d12", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d12,           LLDB_INVALID_REGNUM,    87,              87 },  g_d12_regs,           nullptr,  nullptr,       0 },
+    { "d13", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d13,           LLDB_INVALID_REGNUM,    88,              88 },  g_d13_regs,           nullptr,  nullptr,       0 },
+    { "d14", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d14,           LLDB_INVALID_REGNUM,    89,              89 },  g_d14_regs,           nullptr,  nullptr,       0 },
+    { "d15", nullptr,   8,   0, eEncodingIEEE754, eFormatFloat, { LLDB_INVALID_REGNUM, dwarf_d15,           LLDB_INVALID_REGNUM,    90,              90 },  g_d15_regs,           nullptr,  nullptr,       0 },
+    { "q0",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q0,    LLDB_INVALID_REGNUM,    91,              91 },   g_q0_regs,           nullptr,  nullptr,       0 },
+    { "q1",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q1,    LLDB_INVALID_REGNUM,    92,              92 },   g_q1_regs,           nullptr,  nullptr,       0 },
+    { "q2",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q2,    LLDB_INVALID_REGNUM,    93,              93 },   g_q2_regs,           nullptr,  nullptr,       0 },
+    { "q3",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q3,    LLDB_INVALID_REGNUM,    94,              94 },   g_q3_regs,           nullptr,  nullptr,       0 },
+    { "q4",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q4,    LLDB_INVALID_REGNUM,    95,              95 },   g_q4_regs,           nullptr,  nullptr,       0 },
+    { "q5",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q5,    LLDB_INVALID_REGNUM,    96,              96 },   g_q5_regs,           nullptr,  nullptr,       0 },
+    { "q6",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q6,    LLDB_INVALID_REGNUM,    97,              97 },   g_q6_regs,           nullptr,  nullptr,       0 },
+    { "q7",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q7,    LLDB_INVALID_REGNUM,    98,              98 },   g_q7_regs,           nullptr,  nullptr,       0 },
+    { "q8",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q8,    LLDB_INVALID_REGNUM,    99,              99 },   g_q8_regs,           nullptr,  nullptr,       0 },
+    { "q9",  nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q9,    LLDB_INVALID_REGNUM,   100,             100 },   g_q9_regs,           nullptr,  nullptr,       0 },
+    { "q10", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q10,   LLDB_INVALID_REGNUM,   101,             101 },  g_q10_regs,           nullptr,  nullptr,       0 },
+    { "q11", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q11,   LLDB_INVALID_REGNUM,   102,             102 },  g_q11_regs,           nullptr,  nullptr,       0 },
+    { "q12", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q12,   LLDB_INVALID_REGNUM,   103,             103 },  g_q12_regs,           nullptr,  nullptr,       0 },
+    { "q13", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q13,   LLDB_INVALID_REGNUM,   104,             104 },  g_q13_regs,           nullptr,  nullptr,       0 },
+    { "q14", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q14,   LLDB_INVALID_REGNUM,   105,             105 },  g_q14_regs,           nullptr,  nullptr,       0 },
+    { "q15", nullptr,   16,  0, eEncodingVector,  eFormatVectorOfUInt8, { LLDB_INVALID_REGNUM, dwarf_q15,   LLDB_INVALID_REGNUM,   106,             106 },  g_q15_regs,           nullptr,  nullptr,       0 }
     };
   // clang-format on
 

diff  --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 2b01da289d63..66e33592ba63 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -509,6 +509,17 @@ void ProcessGDBRemote::BuildDynamicRegisterInfo(bool force) {
             SplitCommaSeparatedRegisterNumberString(value, reg_info.value_regs, 16);
           } else if (name.equals("invalidate-regs")) {
             SplitCommaSeparatedRegisterNumberString(value, reg_info.invalidate_regs, 16);
+          } else if (name.equals("dynamic_size_dwarf_expr_bytes")) {
+            size_t dwarf_opcode_len = value.size() / 2;
+            assert(dwarf_opcode_len > 0);
+
+            reg_info.dwarf_opcode_bytes.resize(dwarf_opcode_len);
+
+            StringExtractor opcode_extractor(value);
+            uint32_t ret_val =
+                opcode_extractor.GetHexBytesAvail(reg_info.dwarf_opcode_bytes);
+            assert(dwarf_opcode_len == ret_val);
+            UNUSED_IF_ASSERT_DISABLED(ret_val);
           }
         }
 
@@ -4297,6 +4308,17 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
           } else if (name == "invalidate_regnums") {
             SplitCommaSeparatedRegisterNumberString(
                 value, reg_info.invalidate_regs, 0);
+          } else if (name == "dynamic_size_dwarf_expr_bytes") {
+            std::string opcode_string = value.str();
+            size_t dwarf_opcode_len = opcode_string.length() / 2;
+            assert(dwarf_opcode_len > 0);
+
+            reg_info.dwarf_opcode_bytes.resize(dwarf_opcode_len);
+            StringExtractor opcode_extractor(opcode_string);
+            uint32_t ret_val =
+                opcode_extractor.GetHexBytesAvail(reg_info.dwarf_opcode_bytes);
+            assert(dwarf_opcode_len == ret_val);
+            UNUSED_IF_ASSERT_DISABLED(ret_val);
           } else {
             Log *log(ProcessGDBRemoteLog::GetLogIfAllCategoriesSet(
                 GDBR_LOG_PROCESS));
@@ -4524,6 +4546,10 @@ void ProcessGDBRemote::AddRemoteRegisters(
            local_regnum},
           regs_with_sentinel(remote_reg_info.value_regs),
           regs_with_sentinel(remote_reg_info.invalidate_regs),
+          !remote_reg_info.dwarf_opcode_bytes.empty()
+              ? remote_reg_info.dwarf_opcode_bytes.data()
+              : nullptr,
+          remote_reg_info.dwarf_opcode_bytes.size(),
     };
 
     if (abi_sp)

diff  --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
index e61702227a34..962bb807d964 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
@@ -58,6 +58,7 @@ struct RemoteRegisterInfo {
   uint32_t regnum_remote = LLDB_INVALID_REGNUM;
   std::vector<uint32_t> value_regs;
   std::vector<uint32_t> invalidate_regs;
+  std::vector<uint8_t> dwarf_opcode_bytes;
 };
 
 class ThreadGDBRemote;

diff  --git a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp
index 7184dbacb08d..7e309e8322a8 100644
--- a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp
+++ b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp
@@ -30,35 +30,36 @@ using namespace minidump;
 #define DEF_R(i)                                                               \
   {                                                                            \
     "r" #i, nullptr, 4, OFFSET(r) + i * 4, eEncodingUint, eFormatHex,          \
-        {ehframe_r##i, dwarf_r##i, INV, INV, reg_r##i}, nullptr, nullptr,      \
+        {ehframe_r##i, dwarf_r##i, INV, INV, reg_r##i},                          \
+        nullptr, nullptr, nullptr, 0    \
   }
 
 #define DEF_R_ARG(i, n)                                                        \
   {                                                                            \
     "r" #i, "arg" #n, 4, OFFSET(r) + i * 4, eEncodingUint, eFormatHex,         \
-        {ehframe_r##i, dwarf_r##i, LLDB_REGNUM_GENERIC_ARG1 + i, INV,          \
-         reg_r##i},                                                            \
-        nullptr, nullptr,                                                      \
+        {ehframe_r##i, dwarf_r##i, LLDB_REGNUM_GENERIC_ARG1 + i, INV, reg_r##i}, \
+        nullptr, nullptr, nullptr, 0                                           \
   }
 
 #define DEF_D(i)                                                               \
   {                                                                            \
     "d" #i, nullptr, 8, OFFSET(d) + i * 8, eEncodingVector,                    \
         eFormatVectorOfUInt8, {dwarf_d##i, dwarf_d##i, INV, INV, reg_d##i},    \
-        nullptr, nullptr,                                                      \
+        nullptr, nullptr, nullptr, 0    \
   }
 
 #define DEF_S(i)                                                               \
   {                                                                            \
     "s" #i, nullptr, 4, OFFSET(s) + i * 4, eEncodingIEEE754, eFormatFloat,     \
-        {dwarf_s##i, dwarf_s##i, INV, INV, reg_s##i}, nullptr, nullptr,        \
+        {dwarf_s##i, dwarf_s##i, INV, INV, reg_s##i},                          \
+        nullptr, nullptr, nullptr, 0                                           \
   }
 
 #define DEF_Q(i)                                                               \
   {                                                                            \
     "q" #i, nullptr, 16, OFFSET(q) + i * 16, eEncodingVector,                  \
         eFormatVectorOfUInt8, {dwarf_q##i, dwarf_q##i, INV, INV, reg_q##i},    \
-        nullptr, nullptr,                                                      \
+        nullptr, nullptr, nullptr, 0    \
   }
 
 // Zero based LLDB register numbers for this register context
@@ -176,7 +177,8 @@ static RegisterInfo g_reg_info_apple_fp = {
     {ehframe_r7, dwarf_r7, LLDB_REGNUM_GENERIC_FP, INV, reg_r7},
     nullptr,
     nullptr,
-};
+    nullptr,
+    0};
 
 static RegisterInfo g_reg_info_fp = {
     "fp",
@@ -188,7 +190,8 @@ static RegisterInfo g_reg_info_fp = {
     {ehframe_r11, dwarf_r11, LLDB_REGNUM_GENERIC_FP, INV, reg_r11},
     nullptr,
     nullptr,
-};
+    nullptr,
+    0};
 
 // Register info definitions for this register context
 static RegisterInfo g_reg_infos[] = {
@@ -214,7 +217,8 @@ static RegisterInfo g_reg_infos[] = {
      {ehframe_sp, dwarf_sp, LLDB_REGNUM_GENERIC_SP, INV, reg_sp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "r14",
      4,
@@ -224,7 +228,8 @@ static RegisterInfo g_reg_infos[] = {
      {ehframe_lr, dwarf_lr, LLDB_REGNUM_GENERIC_RA, INV, reg_lr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      "r15",
      4,
@@ -234,7 +239,8 @@ static RegisterInfo g_reg_infos[] = {
      {ehframe_pc, dwarf_pc, LLDB_REGNUM_GENERIC_PC, INV, reg_pc},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"cpsr",
      "psr",
      4,
@@ -244,7 +250,8 @@ static RegisterInfo g_reg_infos[] = {
      {ehframe_cpsr, dwarf_cpsr, LLDB_REGNUM_GENERIC_FLAGS, INV, reg_cpsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fpscr",
      nullptr,
      8,
@@ -254,7 +261,8 @@ static RegisterInfo g_reg_infos[] = {
      {INV, INV, INV, INV, reg_fpscr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     DEF_D(0),
     DEF_D(1),
     DEF_D(2),

diff  --git a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp
index e606ec9c3b64..e2b7c0e362a7 100644
--- a/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp
+++ b/lldb/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp
@@ -29,48 +29,48 @@ using namespace minidump;
   {                                                                            \
     "x" #i, nullptr, 8, OFFSET(x) + i * 8, eEncodingUint, eFormatHex,          \
         {arm64_dwarf::x##i, arm64_dwarf::x##i, INV, INV, reg_x##i},            \
-        nullptr, nullptr,                                                      \
+        nullptr, nullptr, nullptr, 0                                           \
   }
 
 #define DEF_W(i)                                                               \
   {                                                                            \
     "w" #i, nullptr, 4, OFFSET(x) + i * 8, eEncodingUint, eFormatHex,          \
-        {INV, INV, INV, INV, reg_w##i}, nullptr, nullptr,                      \
+        {INV, INV, INV, INV, reg_w##i}, nullptr, nullptr, nullptr, 0           \
   }
 
 #define DEF_X_ARG(i, n)                                                        \
   {                                                                            \
     "x" #i, "arg" #n, 8, OFFSET(x) + i * 8, eEncodingUint, eFormatHex,         \
         {arm64_dwarf::x##i, arm64_dwarf::x##i, LLDB_REGNUM_GENERIC_ARG1 + i,   \
-         INV, reg_x##i}, nullptr, nullptr,                                     \
+         INV, reg_x##i}, nullptr, nullptr, nullptr, 0                          \
   }
 
 #define DEF_V(i)                                                               \
   {                                                                            \
     "v" #i, nullptr, 16, OFFSET(v) + i * 16, eEncodingVector,                  \
         eFormatVectorOfUInt8, {arm64_dwarf::v##i, arm64_dwarf::v##i, INV, INV, \
-        reg_v##i}, nullptr, nullptr,                                           \
+        reg_v##i}, nullptr, nullptr, nullptr, 0                                \
   }
 
 #define DEF_D(i)                                                               \
   {                                                                            \
     "d" #i, nullptr, 8, OFFSET(v) + i * 16, eEncodingVector,                   \
         eFormatVectorOfUInt8, {INV, INV, INV, INV, reg_d##i}, nullptr,         \
-        nullptr,                                                               \
+        nullptr, nullptr, 0                                                    \
   }
 
 #define DEF_S(i)                                                               \
   {                                                                            \
     "s" #i, nullptr, 4, OFFSET(v) + i * 16, eEncodingVector,                   \
         eFormatVectorOfUInt8, {INV, INV, INV, INV, reg_s##i}, nullptr,         \
-        nullptr,                                                               \
+        nullptr, nullptr, 0                                                    \
   }
 
 #define DEF_H(i)                                                               \
   {                                                                            \
     "h" #i, nullptr, 2, OFFSET(v) + i * 16, eEncodingVector,                   \
         eFormatVectorOfUInt8, {INV, INV, INV, INV, reg_h##i}, nullptr,         \
-        nullptr,                                                               \
+        nullptr, nullptr, 0                                                    \
   }
 
 // Zero based LLDB register numbers for this register context
@@ -316,7 +316,8 @@ static RegisterInfo g_reg_infos[] = {
      {arm64_dwarf::x29, arm64_dwarf::x29, LLDB_REGNUM_GENERIC_FP, INV, reg_fp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"lr",
      "x30",
      8,
@@ -326,7 +327,8 @@ static RegisterInfo g_reg_infos[] = {
      {arm64_dwarf::x30, arm64_dwarf::x30, LLDB_REGNUM_GENERIC_RA, INV, reg_lr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"sp",
      "x31",
      8,
@@ -336,7 +338,8 @@ static RegisterInfo g_reg_infos[] = {
      {arm64_dwarf::x31, arm64_dwarf::x31, LLDB_REGNUM_GENERIC_SP, INV, reg_sp},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"pc",
      nullptr,
      8,
@@ -346,7 +349,8 @@ static RegisterInfo g_reg_infos[] = {
      {arm64_dwarf::pc, arm64_dwarf::pc, LLDB_REGNUM_GENERIC_PC, INV, reg_pc},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // w0 - w31
     DEF_W(0),
     DEF_W(1),
@@ -389,7 +393,8 @@ static RegisterInfo g_reg_infos[] = {
      {INV, arm64_dwarf::cpsr, LLDB_REGNUM_GENERIC_FLAGS, INV, reg_cpsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fpsr",
      nullptr,
      4,
@@ -399,7 +404,8 @@ static RegisterInfo g_reg_infos[] = {
      {INV, INV, INV, INV, reg_fpsr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     {"fpcr",
      nullptr,
      4,
@@ -409,7 +415,8 @@ static RegisterInfo g_reg_infos[] = {
      {INV, INV, INV, INV, reg_fpcr},
      nullptr,
      nullptr,
-    },
+     nullptr,
+     0},
     // v0 - v31
     DEF_V(0),
     DEF_V(1),

diff  --git a/lldb/source/Target/DynamicRegisterInfo.cpp b/lldb/source/Target/DynamicRegisterInfo.cpp
index 396a13d6add4..2dbaa7d56c03 100644
--- a/lldb/source/Target/DynamicRegisterInfo.cpp
+++ b/lldb/source/Target/DynamicRegisterInfo.cpp
@@ -42,6 +42,7 @@ void DynamicRegisterInfo::MoveFrom(DynamicRegisterInfo &&info) {
   m_set_names = std::move(info.m_set_names);
   m_value_regs_map = std::move(info.m_value_regs_map);
   m_invalidate_regs_map = std::move(info.m_invalidate_regs_map);
+  m_dynamic_reg_size_map = std::move(info.m_dynamic_reg_size_map);
 
   m_reg_data_byte_size = info.m_reg_data_byte_size;
   m_finalized = info.m_finalized;
@@ -272,6 +273,25 @@ DynamicRegisterInfo::SetRegisterInfo(const StructuredData::Dictionary &dict,
 
     reg_info.byte_size = bitsize / 8;
 
+    llvm::StringRef dwarf_opcode_string;
+    if (reg_info_dict->GetValueForKeyAsString("dynamic_size_dwarf_expr_bytes",
+                                              dwarf_opcode_string)) {
+      reg_info.dynamic_size_dwarf_len = dwarf_opcode_string.size() / 2;
+      assert(reg_info.dynamic_size_dwarf_len > 0);
+
+      std::vector<uint8_t> dwarf_opcode_bytes(reg_info.dynamic_size_dwarf_len);
+      uint32_t j;
+      StringExtractor opcode_extractor(dwarf_opcode_string);
+      uint32_t ret_val = opcode_extractor.GetHexBytesAvail(dwarf_opcode_bytes);
+      UNUSED_IF_ASSERT_DISABLED(ret_val);
+      assert(ret_val == reg_info.dynamic_size_dwarf_len);
+
+      for (j = 0; j < reg_info.dynamic_size_dwarf_len; ++j)
+        m_dynamic_reg_size_map[i].push_back(dwarf_opcode_bytes[j]);
+
+      reg_info.dynamic_size_dwarf_expr_bytes = m_dynamic_reg_size_map[i].data();
+    }
+
     llvm::StringRef format_str;
     if (reg_info_dict->GetValueForKeyAsString("format", format_str, nullptr)) {
       if (OptionArgParser::ToFormat(format_str.str().c_str(), reg_info.format,
@@ -399,6 +419,14 @@ void DynamicRegisterInfo::AddRegister(RegisterInfo reg_info,
     // invalidate until Finalize() is called
     reg_info.invalidate_regs = nullptr;
   }
+  if (reg_info.dynamic_size_dwarf_expr_bytes) {
+    for (i = 0; i < reg_info.dynamic_size_dwarf_len; ++i)
+      m_dynamic_reg_size_map[reg_num].push_back(
+          reg_info.dynamic_size_dwarf_expr_bytes[i]);
+
+    reg_info.dynamic_size_dwarf_expr_bytes =
+        m_dynamic_reg_size_map[reg_num].data();
+  }
 
   m_regs.push_back(reg_info);
   uint32_t set = GetRegisterSetIndexByName(set_name, true);
@@ -745,6 +773,7 @@ void DynamicRegisterInfo::Clear() {
   m_set_names.clear();
   m_value_regs_map.clear();
   m_invalidate_regs_map.clear();
+  m_dynamic_reg_size_map.clear();
   m_reg_data_byte_size = 0;
   m_finalized = false;
 }

diff  --git a/lldb/source/Target/RegisterContext.cpp b/lldb/source/Target/RegisterContext.cpp
index 7364660650e8..0e50e650dd23 100644
--- a/lldb/source/Target/RegisterContext.cpp
+++ b/lldb/source/Target/RegisterContext.cpp
@@ -77,6 +77,44 @@ RegisterContext::GetRegisterInfoByName(llvm::StringRef reg_name,
   return nullptr;
 }
 
+uint32_t
+RegisterContext::UpdateDynamicRegisterSize(const lldb_private::ArchSpec &arch,
+                                           RegisterInfo *reg_info) {
+  ExecutionContext exe_ctx(CalculateThread());
+
+  // In MIPS, the floating point registers size is depends on FR bit of SR
+  // register. if SR.FR  == 1 then all floating point registers are 64 bits.
+  // else they are all 32 bits.
+
+  int expr_result;
+  uint32_t addr_size = arch.GetAddressByteSize();
+  const uint8_t *dwarf_opcode_ptr = reg_info->dynamic_size_dwarf_expr_bytes;
+  const size_t dwarf_opcode_len = reg_info->dynamic_size_dwarf_len;
+
+  DataExtractor dwarf_data(dwarf_opcode_ptr, dwarf_opcode_len,
+                           arch.GetByteOrder(), addr_size);
+  ModuleSP opcode_ctx;
+  DWARFExpression dwarf_expr(opcode_ctx, dwarf_data, nullptr);
+  Value result;
+  Status error;
+  if (dwarf_expr.Evaluate(&exe_ctx, this, opcode_ctx, dwarf_data, nullptr,
+                          eRegisterKindDWARF, nullptr, nullptr, result,
+                          &error)) {
+    expr_result = result.GetScalar().SInt(-1);
+    switch (expr_result) {
+    case 0:
+      return 4;
+    case 1:
+      return 8;
+    default:
+      return reg_info->byte_size;
+    }
+  } else {
+    printf("Error executing DwarfExpression::Evaluate %s\n", error.AsCString());
+    return reg_info->byte_size;
+  }
+}
+
 const RegisterInfo *RegisterContext::GetRegisterInfo(lldb::RegisterKind kind,
                                                      uint32_t num) {
   const uint32_t reg_num = ConvertRegisterKindToRegisterNumber(kind, num);

diff  --git a/lldb/unittests/Target/DynamicRegisterInfoTest.cpp b/lldb/unittests/Target/DynamicRegisterInfoTest.cpp
index a4884440a50c..14a34dde2834 100644
--- a/lldb/unittests/Target/DynamicRegisterInfoTest.cpp
+++ b/lldb/unittests/Target/DynamicRegisterInfoTest.cpp
@@ -37,7 +37,7 @@ class DynamicRegisterInfoTest : public ::testing::Test {
           lldb::eFormatUnsigned,
           {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM,
            next_regnum, next_regnum},
-          nullptr, nullptr
+          nullptr, nullptr, nullptr, 0
     };
 
     if (!value_regs.empty()) {
@@ -140,7 +140,7 @@ TEST_F(DynamicRegisterInfoTest, add_supplementary_register) {
         lldb::eFormatUnsigned,
         {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, eax,
          eax},
-        value_regs, nullptr
+        value_regs, nullptr, nullptr, 0
   };
   info.AddSupplementaryRegister(eax_reg, group);
 
@@ -148,7 +148,7 @@ TEST_F(DynamicRegisterInfoTest, add_supplementary_register) {
     "ax", nullptr, 2, LLDB_INVALID_INDEX32, lldb::eEncodingUint,
         lldb::eFormatUnsigned,
         {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, ax, ax},
-        value_regs, nullptr
+        value_regs, nullptr, nullptr, 0
   };
   info.AddSupplementaryRegister(ax_reg, group);
 
@@ -156,7 +156,7 @@ TEST_F(DynamicRegisterInfoTest, add_supplementary_register) {
     "al", nullptr, 1, LLDB_INVALID_INDEX32, lldb::eEncodingUint,
         lldb::eFormatUnsigned,
         {LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, al, al},
-        value_regs, nullptr
+        value_regs, nullptr, nullptr, 0
   };
   info.AddSupplementaryRegister(al_reg, group);
 

diff  --git a/lldb/unittests/tools/lldb-server/tests/MessageObjects.cpp b/lldb/unittests/tools/lldb-server/tests/MessageObjects.cpp
index 61d4e8147a39..77bc3a5e6eef 100644
--- a/lldb/unittests/tools/lldb-server/tests/MessageObjects.cpp
+++ b/lldb/unittests/tools/lldb-server/tests/MessageObjects.cpp
@@ -157,6 +157,8 @@ Expected<RegisterInfo> RegisterInfoParser::create(StringRef Response) {
       },
       nullptr,
       nullptr,
+      nullptr, // Dwarf expression opcode bytes pointer
+      0        // Dwarf expression opcode bytes length
   };
   Info.name = ConstString(Elements["name"]).GetCString();
   if (!Info.name)


        


More information about the lldb-commits mailing list