aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/s390-tdep.c11
2 files changed, 14 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6d55fa7..92daea9 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
2001-12-19 Jim Blandy <jimb@redhat.com>
+ * s390-tdep.c (s390_register_name): S390_LAST_REGNUM is, in fact,
+ the last register number, not one greater than the last register
+ number.
+
+ * s390-tdep.c (s390_register_virtual_type): Replace clever but
+ incorrect range comparison with correct, legible equivalent.
+
* s390-tdep.c (s390_register_raw_size): Replace unnecessarily
obscure range comparison with legible equivalent.
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index a6a675e..7bab1a8 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -161,9 +161,10 @@ s390_register_name (int reg_nr)
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15"
};
- if (reg_nr >= S390_LAST_REGNUM)
+ if (reg_nr <= S390_LAST_REGNUM)
+ return register_names[reg_nr];
+ else
return NULL;
- return register_names[reg_nr];
}
@@ -1672,8 +1673,10 @@ s390_use_struct_convention (int gcc_p, struct type *value_type)
struct type *
s390_register_virtual_type (int regno)
{
- return ((unsigned) regno - S390_FPC_REGNUM) <
- S390_NUM_FPRS ? builtin_type_double : builtin_type_int;
+ if (S390_FP0_REGNUM <= regno && regno < S390_FP0_REGNUM + S390_NUM_FPRS)
+ return builtin_type_double;
+ else
+ return builtin_type_int;
}