#include "elf/common.h"
#include "ax.h"
#include "tracepoint.h"
+#include "debug.h"
#include <signal.h>
#include <sys/user.h>
#include "gdb_proc_service.h"
#include "arch/aarch64.h"
+#include "linux-aarch32-tdesc.h"
#include "linux-aarch64-tdesc.h"
#include "nat/aarch64-sve-linux-ptrace.h"
#include "tdesc.h"
{
struct regcache *regcache = get_thread_regcache (current_thread, 0);
- return regcache->tdesc->reg_defs.size () == AARCH64_SVE_NUM_REGS;
+ return tdesc_contains_feature (regcache->tdesc, "org.gnu.gdb.aarch64.sve");
}
static void
&pauth_regset[1]);
}
-/* Enable miscellaneous debugging output. The name is historical - it
- was originally used to debug LinuxThreads support. */
-extern int debug_threads;
-
/* Implementation of linux_target_ops method "get_pc". */
static CORE_ADDR
current_process ()->tdesc = aarch64_linux_read_description (vq, pauth_p);
}
else
- current_process ()->tdesc = tdesc_arm_with_neon;
+ current_process ()->tdesc = aarch32_linux_read_description ();
aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread));
}
for (i = 0; i < len; i++)
le_buf[i] = htole32 (buf[i]);
- write_inferior_memory (*to, (const unsigned char *) le_buf, byte_len);
+ target_write_memory (*to, (const unsigned char *) le_buf, byte_len);
xfree (le_buf);
#else
- write_inferior_memory (*to, (const unsigned char *) buf, byte_len);
+ target_write_memory (*to, (const unsigned char *) buf, byte_len);
#endif
*to += byte_len;
for (i = 30; i >= 0; i -= 2)
p += emit_stp_q_offset (p, i, i + 1, sp, i * 16);
- /* Push general puspose registers on the stack. Note that we do not need
+ /* Push general purpose registers on the stack. Note that we do not need
to push x31 as it represents the xzr register and not the stack
pointer in a STR instruction.
; This instruction is a normal store with memory ordering
; constraints. Thanks to this we do not have to put a data
; barrier instruction to make sure all data read and writes are done
- ; before this instruction is executed. Furthermore, this instrucion
+ ; before this instruction is executed. Furthermore, this instruction
; will trigger an event, letting other threads know they can grab
; the lock.
STLR xzr, [x0]
the current stack pointer in the frame pointer. This way, it is not
clobbered when calling C functions.
- Finally, throughtout every operation, we are using register x0 as the
+ Finally, throughout every operation, we are using register x0 as the
top of the stack, and x1 as a scratch register. */
p += emit_stp (p, x0, x1, sp, preindex_memory_operand (-2 * 16));
initialize_regsets_info (&aarch64_regsets_info);
initialize_regsets_info (&aarch64_sve_regsets_info);
-
-#if GDB_SELF_TEST
- initialize_low_tdesc ();
-#endif
}