summaryrefslogtreecommitdiff
path: root/gdb/gdbserver/linux-aarch64-ipa.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/gdbserver/linux-aarch64-ipa.c')
-rw-r--r--gdb/gdbserver/linux-aarch64-ipa.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gdb/gdbserver/linux-aarch64-ipa.c b/gdb/gdbserver/linux-aarch64-ipa.c
index 601d61c9699..d713bfa969a 100644
--- a/gdb/gdbserver/linux-aarch64-ipa.c
+++ b/gdb/gdbserver/linux-aarch64-ipa.c
@@ -29,6 +29,9 @@
/* Defined in auto-generated file aarch64.c. */
void init_registers_aarch64 (void);
extern const struct target_desc *tdesc_aarch64;
+/* Defined in auto-geenrated file aarch64_ilp32.c. */
+void init_registers_aarch64_ilp32 (void);
+extern const struct target_desc *tdesc_aarch64_ilp32;
/* Each register saved by the jump pad is in a 16 byte cell. */
#define FT_CR_SIZE 16
@@ -155,6 +158,9 @@ get_raw_reg (const unsigned char *raw_regs, int regnum)
const struct target_desc *
get_ipa_tdesc (int idx)
{
+ if (sizeof (void*) == 4)
+ return tdesc_aarch64_ilp32;
+
return tdesc_aarch64;
}
@@ -207,5 +213,8 @@ alloc_jump_pad_buffer (size_t size)
void
initialize_low_tracepoint (void)
{
- init_registers_aarch64 ();
+ if (sizeof(void*) == 4)
+ init_registers_aarch64_ilp32 ();
+ else
+ init_registers_aarch64 ();
}