s390: gdbarch_tdep add field tdesc
authorPhilipp Rudo <prudo@linux.vnet.ibm.com>
Tue, 23 Jan 2018 12:37:42 +0000 (13:37 +0100)
committerAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 23 Jan 2018 12:37:42 +0000 (13:37 +0100)
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.

gdb/ChangeLog
gdb/s390-linux-tdep.c

index 52394ab6ecda600384d94e5adcf4fbbea1892a49..e823cc4eeb3befe1ade7d4c470b3412d72164619 100644 (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>
index 7d41dfeb9b96fa206a56a354bf4c335d8273c72c..557eac3275fa0faabfa515380b15aee9af43172b 100644 (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.  */