+2020-10-20 Luis Machado <luis.machado@arm.com>
+
+ * aarch64-linux-tdep.c (aarch64_linux_init_abi): Only set displaced
+ stepping hooks for non-Morello targets.
+
2020-10-20 Luis Machado <luis.machado@arm.com>
* aarch64-tdep.c (aarch64_displaced_step_data) <gdbarch>: New field.
set_xml_syscall_file_name (gdbarch, "syscalls/aarch64-linux.xml");
set_gdbarch_get_syscall_number (gdbarch, aarch64_linux_get_syscall_number);
- /* Displaced stepping. */
- set_gdbarch_max_insn_length (gdbarch, 4 * AARCH64_DISPLACED_MODIFIED_INSNS);
- set_gdbarch_displaced_step_copy_insn (gdbarch,
- aarch64_displaced_step_copy_insn);
- set_gdbarch_displaced_step_fixup (gdbarch, aarch64_displaced_step_fixup);
- set_gdbarch_displaced_step_location (gdbarch, linux_displaced_step_location);
set_gdbarch_displaced_step_hw_singlestep (gdbarch,
aarch64_displaced_step_hw_singlestep);
set_gdbarch_report_signal_info (gdbarch,
aarch64_linux_report_signal_info);
}
+ else
+ {
+ /* Displaced stepping. */
+ /* Note: Morello does not support displaced stepping yet because
+ adjustments to GPR's may not be correct. This is because GDB can't
+ make adjustments to the upper 65 bits of the C registers. */
+ set_gdbarch_max_insn_length (gdbarch,
+ 4 * AARCH64_DISPLACED_MODIFIED_INSNS);
+ set_gdbarch_displaced_step_copy_insn (gdbarch,
+ aarch64_displaced_step_copy_insn);
+ set_gdbarch_displaced_step_fixup (gdbarch, aarch64_displaced_step_fixup);
+ set_gdbarch_displaced_step_location (gdbarch,
+ linux_displaced_step_location);
+ }
}
void _initialize_aarch64_linux_tdep ();