aboutsummaryrefslogtreecommitdiff
path: root/gdb/aarch64-tdep.h
AgeCommit message (Collapse)AuthorFilesLines
2017-01-01update copyright year range in GDB filesJoel Brobecker1-1/+1
This applies the second part of GDB's End of Year Procedure, which updates the copyright year range in all of GDB's files. gdb/ChangeLog: Update copyright year range in all GDB files.
2016-10-12[AArch64] Track FP registers in prologue analyzerYao Qi1-0/+2
We don't track FP registers in aarch64 prologue analyzer, so this causes an internal error when FP registers are saved by "stp" instruction in prologue (stp d8, d9, [sp,#128]), tbreak _Unwind_RaiseException^M aarch64-tdep.c:335: internal-error: CORE_ADDR aarch64_analyze_prologue(gdbarch*, CORE_ADDR, CORE_ADDR, aarch64_prologue_cache*): Assertion `inst.operands[0].type == AARCH64_OPND_Rt' failed.^M A problem internal to GDB has been detected, This patch teaches GDB to track FP registers (D registers) in prologue analyzer. gdb: 2016-10-12 Yao Qi <yao.qi@linaro.org> PR tdep/20682 * aarch64-tdep.c: Replace 32 with AARCH64_D_REGISTER_COUNT. (aarch64_analyze_prologue): Extend array 'regs' for D registers. Assert that operand 0 and 1 can be X or D registers. Update register number for D registers. Update registers in frame cache. * aarch64-tdep.h (AARCH64_D_REGISTER_COUNT): New macro.
2016-01-01GDB copyright headers update after running GDB's copyright.py script.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2015-10-12Support displaced stepping in aarch64-linuxYao Qi1-0/+17
This patch is to support displaced stepping in aarch64-linux. A visitor is implemented for displaced stepping, and used to record information to fixup pc after displaced stepping if needed. Some emit_* functions are converted to macros, and moved to arch/aarch64-insn.{c,h} so that they can be shared. gdb: 2015-10-12 Yao Qi <yao.qi@linaro.org> * aarch64-linux-tdep.c: Include arch-utils.h. (aarch64_linux_init_abi): Call set_gdbarch_max_insn_length, set_gdbarch_displaced_step_copy_insn, set_gdbarch_displaced_step_fixup, set_gdbarch_displaced_step_free_closure, set_gdbarch_displaced_step_location, and set_gdbarch_displaced_step_hw_singlestep. * aarch64-tdep.c (struct displaced_step_closure): New. (struct aarch64_displaced_step_data): New. (aarch64_displaced_step_b): New function. (aarch64_displaced_step_b_cond): Likewise. (aarch64_register): Likewise. (aarch64_displaced_step_cb): Likewise. (aarch64_displaced_step_tb): Likewise. (aarch64_displaced_step_adr): Likewise. (aarch64_displaced_step_ldr_literal): Likewise. (aarch64_displaced_step_others): Likewise. (aarch64_displaced_step_copy_insn): Likewise. (aarch64_displaced_step_fixup): Likewise. (aarch64_displaced_step_hw_singlestep): Likewise. * aarch64-tdep.h (DISPLACED_MODIFIED_INSNS): New macro. (aarch64_displaced_step_copy_insn): Declare. (aarch64_displaced_step_fixup): Declare. (aarch64_displaced_step_hw_singlestep): Declare. * arch/aarch64-insn.c (emit_insn): Moved from gdbserver/linux-aarch64-low.c. (emit_load_store): Likewise. * arch/aarch64-insn.h (enum aarch64_opcodes): Moved from gdbserver/linux-aarch64-low.c. (struct aarch64_register): Likewise. (struct aarch64_memory_operand): Likewise. (ENCODE): Likewise. (can_encode_int32): New macro. (emit_b, emit_bcond, emit_cb, emit_ldr, emit_ldrsw): Likewise. (emit_tb, emit_nop): Likewise. (emit_insn): Declare. (emit_load_store): Declare. gdb/gdbserver: 2015-10-12 Yao Qi <yao.qi@linaro.org> * linux-aarch64-low.c (enum aarch64_opcodes): Move to arch/aarch64-insn.h. (struct aarch64_memory_operand): Likewise. (ENCODE): Likewise. (emit_insn): Move to arch/aarch64-insn.c. (emit_b, emit_bcond, emit_cb, emit_tb): Remove. (emit_load_store): Move to arch/aarch64-insn.c. (emit_ldr, emit_ldrb, emit_ldrsw, emit_nop): Remove. (can_encode_int32): Remove.
2015-05-26Implements aarch64 process record and reverse debugging supportOmair Javaid1-0/+6
This patch adds the support of aarch64-linux process record and reverse debugging. The implementation is similar to ARM's counterpart. 2015-05-26 Omair Javaid <omair.javaid@linaro.org> Yao Qi <yao.qi@linaro.org> * aarch64-linux-tdep.c: Include linux-record.h and record-full.h. (struct linux_record_tdep aarch64_linux_record_tdep): Declare. (aarch64_syscall): New enum. (aarch64_canonicalize_syscall): New function. (aarch64_all_but_pc_registers_record): New function. (aarch64_linux_syscall_record): New function. (aarch64_linux_init_abi): Install AArch64 process record handler. Update to handle syscall recording. * aarch64-tdep.c: Include record.h and record-full.h. (submask, bit, bits, REG_ALLOC, MEM_ALLOC): New macros. (struct aarch64_mem_r): Define. (aarch64_record_result): New enum. (struct insn_decode_record): Define. (insn_decode_record): New typedef. (aarch64_record_data_proc_reg): New function. (aarch64_record_data_proc_imm): New function. (aarch64_record_branch_except_sys): New function. (aarch64_record_load_store): New function. (aarch64_record_data_proc_simd_fp): New function. (aarch64_record_asimd_load_store): New function. (aarch64_record_decode_insn_handler): New function. (deallocate_reg_mem): New function. (aarch64_process_record): New function. * aarch64-tdep.h (struct gdbarch_tdep) <aarch64_syscall_record>: New field. (aarch64_process_record): New extern declaration. * configure.tgt: Add linux-record.o to gdb_target_obs. * linux-record.h (struct linux_record_tdep) <arg7>: New field.
2015-02-17Fix GDB build fail on Aarch64 when -fno-common is enabledMaxim Ostapenko1-0/+2
Current trunk GDB (and gdb-7.8.1 too) fails to build on Aarch64 when -fno-common is enabled. It fails during link stage due to multiple definition of `tdesc_aarch64': ... [ 199s] aarch64-linux-nat.o: In function `initialize_tdesc_aarch64': [ 199s] /home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/features/aarch64.c:11: multiple definition of `tdesc_aarch64' [ 199s] aarch64-tdep.o:/home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/objfiles.h:540: first defined here [ 199s] aarch64-linux-nat.o: In function `initialize_tdesc_aarch64': [ 199s] /home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/features/aarch64.c:11: multiple definition of `tdesc_aarch64' [ 199s] aarch64-tdep.o:/home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/objfiles.h:540: first defined here [ 199s] collect2: error: ld returned 1 exit status [ 199s] make[2]: *** [gdb] Error 1 ... This happens because struct target_desc *tdesc_aarch64 is defined in gdb/features/aarch64.c, which is included by two files (gdb/aarch64-linux-nat.c and gdb/aarch64-tdep.c). gdb/Changelog 2015-02-17 Max Ostapenko <m.ostapenko@partner.samsung.com> PR gdb/17984 * aarch64-linux-nat.c: Don't include features/aarch64.c anymore. (aarch64_linux_read_description): Remove initialize_tdesc_aarch64 call. * aarch64-tdep.h (tdesc_aarch64): Declare.
2015-01-01Update year range in copyright notice of all files owned by the GDB project.Joel Brobecker1-1/+1
gdb/ChangeLog: Update year range in copyright notice of all files.
2014-05-21AARCH64: Replace regset_alloc() invocations by static regset structures.Andreas Arnez1-4/+0
After removal of the regset_alloc invocations, the tdep fields 'gregset' and 'fpregset' become obsolete and are thus removed.
2014-01-01Update Copyright year range in all files maintained by GDB.Joel Brobecker1-1/+1
2013-02-04Adding aarch64-linux-tdep support.Marcus Shawcroft1-0/+4
2013-02-04 Jim MacArthur <jim.macarthur@arm.com> Marcus Shawcroft <marcus.shawcroft@arm.com> Nigel Stephens <nigel.stephens@arm.com> Yufeng Zhang <yufeng.zhang@arm.com> * Makefile.in (ALL_64_TARGET_OBS): Add aarch64-linux-tdep.o. (ALLDEPFILES): Add aarch64-linux-tdep.c. * aarch64-linux-tdep.c: New file. * aarch64-linux-tdep.h: New file. * aarch64-tdep.h (gdbarch_tdep): Define gregset and fpregset. * configure.tgt: Add aarch64-none-linux-gnu.
2013-02-04Add basic support for AArch64.Marcus Shawcroft1-0/+93
* Makefile.in (ALL_64_TARGET_OBS): Add arch64-tdep.o. (HFILES_NO_SRCDIR): Add aarch64-tdep.h. (ALLDEPFILES): Add aarch64-tdep.c. * aarch64-tdep.c: New file. * aarch64-tdep.h: New file. * configure.tgt: Add AArch64. * features/Makefile (WHICH): Add aarch64 and aarch64-without-fpu. (aarch64-expedite): New definition. * features/aarch64-core.xml: New file. * features/aarch64-fpu.xml: New file. * features/aarch64-without-fpu.c: New file (generated). * features/aarch64-without-fpu.xml: New file. * features/aarch64.c: New file (generated). * features/aarch64.xml: New file. * regformats/aarch64-without-fpu.dat: New file (generated). * regformats/aarch64.dat: New file (generated).