Commit Graph

7 Commits

Author SHA1 Message Date
Omair Javaid 99afc88b39 Implements aarch64 process record and reverse debugging support
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-05-26 12:42:07 +01:00
Maxim Ostapenko 9f2e07213a Fix GDB build fail on Aarch64 when -fno-common is enabled
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-02-17 09:10:49 +00:00
Joel Brobecker 32d0add0a6 Update year range in copyright notice of all files owned by the GDB project.
gdb/ChangeLog:

        Update year range in copyright notice of all files.
2015-01-01 13:32:14 +04:00
Andreas Arnez a069a2bdab AARCH64: Replace regset_alloc() invocations by static regset structures.
After removal of the regset_alloc invocations, the tdep fields
'gregset' and 'fpregset' become obsolete and are thus removed.
2014-05-21 17:49:16 +02:00
Joel Brobecker ecd75fc8ee Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
Marcus Shawcroft 1ae3db1961 Adding aarch64-linux-tdep support.
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-04 12:53:59 +00:00
Marcus Shawcroft 07b287a0d1 Add basic support for AArch64.
* 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).
2013-02-04 12:48:37 +00:00