/* Target-dependent code for Hitachi H8/500, for GDB.
- Copyright 1993, 1994, 1995 Free Software Foundation, Inc.
+
+ Copyright 1993, 1994, 1995, 1998, 2000, 2001, 2002 Free Software
+ Foundation, Inc.
This file is part of GDB.
#include "value.h"
#include "dis-asm.h"
#include "gdbcore.h"
+#include "regcache.h"
#define UNSIGNED_SHORT(X) ((X) & 0xffff)
unsigned char b[2];
unsigned char l;
- read_relative_register_raw_bytes (regno, b);
+ frame_register_read (selected_frame, regno, b);
l = b[1];
printf_unfiltered ("\t");
printf_unfiltered ("I-%d - ", (l & 0x80) != 0);
case PC_REGNUM:
return 4;
default:
- abort ();
+ internal_error (__FILE__, __LINE__, "failed internal consistency check");
}
}
case PC_REGNUM:
return builtin_type_unsigned_long;
default:
- abort ();
+ internal_error (__FILE__, __LINE__, "failed internal consistency check");
}
}
return 0;
}
-value_ptr
+struct value *
h8500_value_of_trapped_internalvar (struct internalvar *var)
{
LONGEST regval;
get_saved_register (regbuf, NULL, NULL, selected_frame, regnum, NULL);
regval |= regbuf[0] << 8 | regbuf[1]; /* XXX host/target byte order */
- free (var->value); /* Free up old value */
+ xfree (var->value); /* Free up old value */
var->value = value_from_longest (builtin_type_unsigned_long, regval);
release_value (var->value); /* Unchain new value */
}
void
-h8500_set_trapped_internalvar (struct internalvar *var, value_ptr newval,
+h8500_set_trapped_internalvar (struct internalvar *var, struct value *newval,
int bitpos, int bitsize, int offset)
{
char *page_regnum, *regnum;
}
CORE_ADDR
-h8500_read_pc (int pid)
+h8500_read_pc (ptid_t ptid)
{
return read_register (PC_REGNUM);
}
void
-h8500_write_pc (CORE_ADDR v, int pid)
+h8500_write_pc (CORE_ADDR v, ptid_t ptid)
{
write_register (PC_REGNUM, v);
}
return read_register (PR6_REGNUM);
}
-void
-h8500_write_fp (CORE_ADDR v)
-{
- write_register (PR6_REGNUM, v);
-}
-
void
_initialize_h8500_tdep (void)
{