diff options
author | Philipp Rudo <prudo@linux.vnet.ibm.com> | 2018-01-23 13:37:42 +0100 |
---|---|---|
committer | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2018-01-23 13:37:42 +0100 |
commit | 095085d8473689d86e00cd7d9a63680ca8faeda6 (patch) | |
tree | fe7ecb2fc0364b3f59209a403ecefb825eb07c18 /gdb | |
parent | ab9bcc67975f2a04dfa0e670096fc8161d7840b9 (diff) | |
download | gdb-095085d8473689d86e00cd7d9a63680ca8faeda6.zip gdb-095085d8473689d86e00cd7d9a63680ca8faeda6.tar.gz gdb-095085d8473689d86e00cd7d9a63680ca8faeda6.tar.bz2 |
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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/s390-linux-tdep.c | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 52394ab..e823cc4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 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> <have_tdb>: Change type to bool. (s390_gdbarch_tdep_alloc): Adjust. diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c index 7d41dfe..557eac3 100644 --- a/gdb/s390-linux-tdep.c +++ b/gdb/s390-linux-tdep.c @@ -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. */ |