s390: gdbarch_tdep add field tdesc

Add a field for the target description to gdbarch_tdep.  This will later be
needed to pass the 'correct' target description from osabi_init to
gdbarch_init.  Unfortunately this cannot be done using gdbarch_info as it
is only passed by copy, not reference.

gdb/ChangeLog:

	* s390-linux-tdep.c (gdbarch_tdep) <tdesc>: New field.
	(s390_gdbarch_tdep_alloc): Adjust.
	(s390_gdbarch_init): Adjust.
This commit is contained in:
Philipp Rudo 2018-01-23 13:37:42 +01:00 committed by Andreas Arnez
parent ab9bcc6797
commit 095085d847
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-01-23 Philipp Rudo <prudo@linux.vnet.ibm.com>
* s390-linux-tdep.c (gdbarch_tdep) <tdesc>: New field.
(s390_gdbarch_tdep_alloc): Adjust.
(s390_gdbarch_init): Adjust.
2018-01-23 Philipp Rudo <prudo@linux.vnet.ibm.com>
* s390-linux-tdep.c (gdbarch_tdep) <have_linux_v1, have_linux_v2>

View File

@ -100,6 +100,9 @@ enum s390_vector_abi_kind
struct gdbarch_tdep
{
/* Target description. */
const struct target_desc *tdesc;
/* ABI version. */
enum s390_abi_kind abi;
@ -7815,6 +7818,8 @@ s390_gdbarch_tdep_alloc ()
{
struct gdbarch_tdep *tdep = XCNEW (struct gdbarch_tdep);
tdep->tdesc = NULL;
tdep->abi = ABI_NONE;
tdep->vector_abi = S390_VECTOR_ABI_NONE;
@ -7875,6 +7880,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
else
tdesc = tdesc_s390x_linux64;
}
tdep->tdesc = tdesc;
/* Check any target description for validity. */
if (tdesc_has_registers (tdesc))
@ -8137,7 +8143,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_ax_pseudo_register_push_stack
(gdbarch, s390_ax_pseudo_register_push_stack);
set_gdbarch_gen_return_address (gdbarch, s390_gen_return_address);
tdesc_use_registers (gdbarch, tdesc, tdesc_data);
tdesc_use_registers (gdbarch, tdep->tdesc, tdesc_data);
set_gdbarch_register_name (gdbarch, s390_register_name);
/* Assign pseudo register numbers. */