[Lldb-commits] [lldb] [lldb] AArch64 register 33 is not cpsr (PR #183860)
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Wed Mar 4 03:58:48 PST 2026
DavidSpickett wrote:
Something to do with us now missing out one of the kind entries in the 17 layers of macros we decided were a good idea to inflict upon ourselves.
Used to use this:
```
#define MISC_KIND(reg, type, generic_kind) \
{ \
arm64_ehframe::reg, arm64_dwarf::reg, generic_kind, LLDB_INVALID_REGNUM, \
type##_##reg \
}
```
But now we use `MISC_##TYPE##_KIND(lldb_kind)` aka `MISC_GPR_KIND(lldb_kind)` which does used to be `#define MISC_GPR_KIND(lldb_kind) MISC_KIND(cpsr, gpr, LLDB_REGNUM_GENERIC_FLAGS)`.
```
#define MISC_KIND(reg, type, generic_kind) \
{ \
arm64_ehframe::reg, arm64_dwarf::reg, generic_kind, LLDB_INVALID_REGNUM, \
type##_##reg \
}
```
Which set dwarf, eh, generic kind and this last `type_` thing, whatever that is.
Now we are using:
```
#define LLDB_KIND(lldb_kind) \
{ \
LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, LLDB_INVALID_REGNUM, \
LLDB_INVALID_REGNUM, lldb_kind \
}
```
So the `generic` part is not being set.
Before:
```
<reg name="cpsr" <...> group="General Purpose Registers" ehframe_regnum="33" dwarf_regnum="33" generic="flags" />
```
After:
```
<reg name="cpsr" <...> group="General Purpose Registers" />
```
https://github.com/llvm/llvm-project/pull/183860
More information about the lldb-commits
mailing list