mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
736918239b
The basic support for LoongArch has been merged into the upstream Linux kernel since 5.19-rc1 on June 5, 2022. This commit adds orig_a0 which is added into struct user_pt_regs [1] to match the upstream kernel, and then the upstream GDB will work with the upstream kernel. Note that orig_a0 was added into struct user_pt_regs in the development cycle for merging LoongArch port into the upstream Linux kernel, so earlier kernels (notably, the product kernel with version 4.19 used in distros like UOS and Loongnix) don't have it. Inspect arch/loongarch/include/uapi/asm/ptrace.h in the kernel tree to make sure. To build upstream GDB for a kernel lacking orig_a0, it's necessary to revert this commit locally. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/loongarch/include/uapi/asm/ptrace.h#n24 Signed-off-by: Xi Ruoyao <xry111@xry111.site> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
49 lines
2.9 KiB
C
49 lines
2.9 KiB
C
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
|
|
Original: base32.xml */
|
|
|
|
#include "gdbsupport/tdesc.h"
|
|
|
|
static int
|
|
create_feature_loongarch_base32 (struct target_desc *result, long regnum)
|
|
{
|
|
struct tdesc_feature *feature;
|
|
|
|
feature = tdesc_create_feature (result, "org.gnu.gdb.loongarch.base");
|
|
tdesc_create_reg (feature, "r0", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r1", regnum++, 1, "general", 32, "code_ptr");
|
|
tdesc_create_reg (feature, "r2", regnum++, 1, "general", 32, "data_ptr");
|
|
tdesc_create_reg (feature, "r3", regnum++, 1, "general", 32, "data_ptr");
|
|
tdesc_create_reg (feature, "r4", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r5", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r6", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r7", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r8", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r9", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r10", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r11", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r12", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r13", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r14", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r15", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r16", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r17", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r18", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r19", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r20", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r21", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r22", regnum++, 1, "general", 32, "data_ptr");
|
|
tdesc_create_reg (feature, "r23", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r24", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r25", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r26", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r27", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r28", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r29", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r30", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "r31", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "orig_a0", regnum++, 1, "general", 32, "uint32");
|
|
tdesc_create_reg (feature, "pc", regnum++, 1, "general", 32, "code_ptr");
|
|
tdesc_create_reg (feature, "badv", regnum++, 1, "general", 32, "code_ptr");
|
|
return regnum;
|
|
}
|