aboutsummaryrefslogtreecommitdiff
path: root/gdb/hppa-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/hppa-tdep.c')
-rw-r--r--gdb/hppa-tdep.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index 82ac67b..abd3b90 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -2127,6 +2127,7 @@ hppa_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p)
}
}
+#ifndef GDB_TARGET_IS_HPPA_20W
/* Store upper 21 bits of function address into ldil. fun will either be
the final target (most cases) or __d_plt_call when calling into a shared
library and __gcc_plt_call is not available. */
@@ -2144,6 +2145,7 @@ hppa_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p)
deposit_14 (fun & MASK_11,
extract_unsigned_integer (&dummy[FUNC_LDO_OFFSET],
INSTRUCTION_SIZE)));
+#endif /* GDB_TARGET_IS_HPPA_20W */
#ifdef SR4EXPORT_LDIL_OFFSET
{
@@ -2514,17 +2516,22 @@ pa_print_registers (raw_regs, regnum, fpregs)
int fpregs;
{
int i, j;
- long raw_val[2]; /* Alas, we are compiled so that "long long" is 32 bits */
+ /* Alas, we are compiled so that "long long" is 32 bits */
+ long raw_val[2];
long long_val;
+ int rows = 24, columns = 3;
- for (i = 0; i < 18; i++)
+ for (i = 0; i < rows; i++)
{
- for (j = 0; j < 4; j++)
+ for (j = 0; j < columns; j++)
{
+ /* We display registers in column-major order. */
+ int regnum = i + j * rows;
+
/* Q: Why is the value passed through "extract_signed_integer",
while above, in "pa_do_registers_info" it isn't?
A: ? */
- pa_register_look_aside (raw_regs, i + (j * 18), &raw_val[0]);
+ pa_register_look_aside (raw_regs, regnum, &raw_val[0]);
/* Even fancier % formats to prevent leading zeros
and still maintain the output in columns. */
@@ -2533,17 +2540,17 @@ pa_print_registers (raw_regs, regnum, fpregs)
/* Being big-endian, on this machine the low bits
(the ones we want to look at) are in the second longword. */
long_val = extract_signed_integer (&raw_val[1], 4);
- printf_filtered ("%8.8s: %8x ",
- REGISTER_NAME (i + (j * 18)), long_val);
+ printf_filtered ("%8.8s: %8x",
+ REGISTER_NAME (regnum), long_val);
}
else
{
/* raw_val = extract_signed_integer(&raw_val, 8); */
if (raw_val[0] == 0)
- printf_filtered ("%8.8s: %8x ",
- REGISTER_NAME (i + (j * 18)), raw_val[1]);
+ printf_filtered ("%8.8s: %8x",
+ REGISTER_NAME (regnum), raw_val[1]);
else
- printf_filtered ("%8.8s: %8x%8.8x ", REGISTER_NAME (i + (j * 18)),
+ printf_filtered ("%8.8s: %8x%8.8x", REGISTER_NAME (regnum),
raw_val[0], raw_val[1]);
}
}