Skip to content

Commit 9f86b3c

Browse files
author
git apple-llvm automerger
committed
Merge commit '6505bc3db029' from llvm.org/main into next
2 parents ce2f2ce + 6505bc3 commit 9f86b3c

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ static lldb_private::RegisterInfo g_register_infos_mte[] = {
7979
DEFINE_EXTENSION_REG(mte_ctrl)};
8080

8181
static lldb_private::RegisterInfo g_register_infos_tls[] = {
82-
DEFINE_EXTENSION_REG(tpidr),
82+
DEFINE_EXTENSION_REG_GENERIC(tpidr, LLDB_REGNUM_GENERIC_TP),
8383
// Only present when SME is present
8484
DEFINE_EXTENSION_REG(tpidr2)};
8585

lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,7 @@ static uint32_t g_d29_invalidates[] = {fpu_v29, fpu_s29, LLDB_INVALID_REGNUM};
456456
static uint32_t g_d30_invalidates[] = {fpu_v30, fpu_s30, LLDB_INVALID_REGNUM};
457457
static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
458458

459+
// clang-format off
459460
// Generates register kinds array with DWARF, EH frame and generic kind
460461
#define MISC_KIND(reg, type, generic_kind) \
461462
{ \
@@ -470,6 +471,11 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
470471
LLDB_INVALID_REGNUM, lldb_kind \
471472
}
472473

474+
#define GENERIC_KIND(genenric_kind) \
475+
{ \
476+
LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, genenric_kind, \
477+
LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM \
478+
}
473479
// Generates register kinds array for registers with only lldb kind
474480
#define KIND_ALL_INVALID \
475481
{ \
@@ -484,8 +490,6 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
484490
#define MISC_FPU_KIND(lldb_kind) LLDB_KIND(lldb_kind)
485491
#define MISC_EXC_KIND(lldb_kind) LLDB_KIND(lldb_kind)
486492

487-
// clang-format off
488-
489493
// Defines a 64-bit general purpose register
490494
#define DEFINE_GPR64(reg, generic_kind) \
491495
{ \
@@ -540,6 +544,12 @@ static uint32_t g_d31_invalidates[] = {fpu_v31, fpu_s31, LLDB_INVALID_REGNUM};
540544
#reg, nullptr, 8, 0, lldb::eEncodingUint, lldb::eFormatHex, \
541545
KIND_ALL_INVALID, nullptr, nullptr, nullptr, \
542546
}
547+
548+
#define DEFINE_EXTENSION_REG_GENERIC(reg, generic_kind) \
549+
{ \
550+
#reg, nullptr, 8, 0, lldb::eEncodingUint, lldb::eFormatHex, \
551+
GENERIC_KIND(generic_kind), nullptr, nullptr, nullptr, \
552+
}
543553

544554
static lldb_private::RegisterInfo g_register_infos_arm64_le[] = {
545555
// DEFINE_GPR64(name, GENERIC KIND)

lldb/test/API/linux/aarch64/tls_registers/TestAArch64LinuxTLSRegisters.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ def check_registers(self, registers, values):
5353
tls_reg.IsValid(), "{} register not found.".format(register)
5454
)
5555
self.assertEqual(tls_reg.GetValueAsUnsigned(), values[register])
56+
if register == "tpidr":
57+
self.expect("reg read tp", substrs=[hex(values[register])])
5658

5759
def check_tls_reg(self, registers):
5860
self.setup(registers)

0 commit comments

Comments
 (0)