aboutsummaryrefslogtreecommitdiff
path: root/gdb/alpha-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/alpha-tdep.c')
-rw-r--r--gdb/alpha-tdep.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index d523577..fb2ca18 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -206,14 +206,17 @@ alpha_sts (void *out, const void *in)
registers is different. */
static int
-alpha_convert_register_p (int regno)
+alpha_convert_register_p (int regno, struct type *type)
{
return (regno >= ALPHA_FP0_REGNUM && regno < ALPHA_FP0_REGNUM + 31);
}
static void
-alpha_register_to_value (int regnum, struct type *valtype, char *in, char *out)
+alpha_register_to_value (struct frame_info *frame, int regnum,
+ struct type *valtype, void *out)
{
+ char in[MAX_REGISTER_SIZE];
+ frame_register_read (frame, regnum, in);
switch (TYPE_LENGTH (valtype))
{
case 4:
@@ -228,8 +231,10 @@ alpha_register_to_value (int regnum, struct type *valtype, char *in, char *out)
}
static void
-alpha_value_to_register (struct type *valtype, int regnum, char *in, char *out)
+alpha_value_to_register (struct frame_info *frame, int regnum,
+ struct type *valtype, const void *in)
{
+ char out[MAX_REGISTER_SIZE];
switch (TYPE_LENGTH (valtype))
{
case 4:
@@ -241,6 +246,7 @@ alpha_value_to_register (struct type *valtype, int regnum, char *in, char *out)
default:
error ("Cannot store value in floating point register");
}
+ put_frame_register (frame, regnum, out);
}