diff options
author | Kevin Buettner <kevinb@redhat.com> | 2003-02-03 20:35:44 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2003-02-03 20:35:44 +0000 |
commit | ffc65945ba8548a7668003732ba1486d0aa40a81 (patch) | |
tree | 603a647a830911a82b30048c68c05f16663b754b /gdb/s390-tdep.c | |
parent | f211c6d462e551d77447d6af2ba10fc3c08998e5 (diff) | |
download | gdb-ffc65945ba8548a7668003732ba1486d0aa40a81.zip gdb-ffc65945ba8548a7668003732ba1486d0aa40a81.tar.gz gdb-ffc65945ba8548a7668003732ba1486d0aa40a81.tar.bz2 |
* s390-tdep.c (s390_address_class_type_flags)
(s390_address_class_type_flags_to_name)
(s390_address_class_name_to_type_flags): New functions.
(s390_gdbarch_init): Define ADDRESS_CLASS_TYPE_FLAGS_TO_NAME,
ADDRESS_CLASS_NAME_TO_TYPE_FLAGS, and ADDRESS_CLASS_TYPE_FLAGS.
Diffstat (limited to 'gdb/s390-tdep.c')
-rw-r--r-- | gdb/s390-tdep.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index c313532..21efca8 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -1748,6 +1748,37 @@ s390_push_return_address (CORE_ADDR pc, CORE_ADDR sp) return sp; } +static int +s390_address_class_type_flags (int byte_size, int dwarf2_addr_class) +{ + if (byte_size == 4) + return TYPE_FLAG_ADDRESS_CLASS_1; + else + return 0; +} + +static const char * +s390_address_class_type_flags_to_name (struct gdbarch *gdbarch, int type_flags) +{ + if (type_flags & TYPE_FLAG_ADDRESS_CLASS_1) + return "mode32"; + else + return NULL; +} + +int +s390_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, + int *type_flags_ptr) +{ + if (strcmp (name, "mode32") == 0) + { + *type_flags_ptr = TYPE_FLAG_ADDRESS_CLASS_1; + return 1; + } + else + return 0; +} + struct gdbarch * s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) { @@ -1869,6 +1900,12 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_long_long_bit (gdbarch, 64); set_gdbarch_ptr_bit (gdbarch, 64); set_gdbarch_register_bytes (gdbarch, S390X_REGISTER_BYTES); + set_gdbarch_address_class_type_flags (gdbarch, + s390_address_class_type_flags); + set_gdbarch_address_class_type_flags_to_name (gdbarch, + s390_address_class_type_flags_to_name); + set_gdbarch_address_class_name_to_type_flags (gdbarch, + s390_address_class_name_to_type_flags); break; } |