| Index: gdb/regcache.c
|
| diff --git a/gdb/regcache.c b/gdb/regcache.c
|
| index c7162802379bdd6ca4a8d25d25027b072aa643b5..e847455f15c58c0e9729bf27e94ad406d13265e9 100644
|
| --- a/gdb/regcache.c
|
| +++ b/gdb/regcache.c
|
| @@ -1,7 +1,6 @@
|
| /* Cache and manage the values of registers for GDB, the GNU debugger.
|
|
|
| - Copyright (C) 1986-1987, 1989, 1991, 1994-1996, 1998, 2000-2002,
|
| - 2004, 2007-2012 Free Software Foundation, Inc.
|
| + Copyright (C) 1986-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -26,11 +25,12 @@
|
| #include "regcache.h"
|
| #include "reggroups.h"
|
| #include "gdb_assert.h"
|
| -#include "gdb_string.h"
|
| +#include <string.h>
|
| #include "gdbcmd.h" /* For maintenanceprintlist. */
|
| #include "observer.h"
|
| #include "exceptions.h"
|
| #include "remote.h"
|
| +#include "valprint.h"
|
|
|
| /*
|
| * DATA STRUCTURE
|
| @@ -226,14 +226,14 @@ regcache_xmalloc_1 (struct gdbarch *gdbarch, struct address_space *aspace,
|
| regcache->registers
|
| = XCALLOC (descr->sizeof_cooked_registers, gdb_byte);
|
| regcache->register_status
|
| - = XCALLOC (descr->sizeof_cooked_register_status, gdb_byte);
|
| + = XCALLOC (descr->sizeof_cooked_register_status, signed char);
|
| }
|
| else
|
| {
|
| regcache->registers
|
| = XCALLOC (descr->sizeof_raw_registers, gdb_byte);
|
| regcache->register_status
|
| - = XCALLOC (descr->sizeof_raw_register_status, gdb_byte);
|
| + = XCALLOC (descr->sizeof_raw_register_status, signed char);
|
| }
|
| regcache->aspace = aspace;
|
| regcache->ptid = minus_one_ptid;
|
| @@ -411,7 +411,7 @@ regcache_dup (struct regcache *src)
|
| return newbuf;
|
| }
|
|
|
| -int
|
| +enum register_status
|
| regcache_register_status (const struct regcache *regcache, int regnum)
|
| {
|
| gdb_assert (regcache != NULL);
|
| @@ -707,8 +707,6 @@ regcache_cooked_read (struct regcache *regcache, int regnum, gdb_byte *buf)
|
| {
|
| /* Read-only register cache, perhaps the cooked value was
|
| cached? */
|
| - struct gdbarch *gdbarch = regcache->descr->gdbarch;
|
| -
|
| if (regcache->register_status[regnum] == REG_VALID)
|
| memcpy (buf, register_buffer (regcache, regnum),
|
| regcache->descr->sizeof_register[regnum]);
|
| @@ -1093,27 +1091,6 @@ reg_flush_command (char *command, int from_tty)
|
| printf_filtered (_("Register cache flushed.\n"));
|
| }
|
|
|
| -static void
|
| -dump_endian_bytes (struct ui_file *file, enum bfd_endian endian,
|
| - const unsigned char *buf, long len)
|
| -{
|
| - int i;
|
| -
|
| - switch (endian)
|
| - {
|
| - case BFD_ENDIAN_BIG:
|
| - for (i = 0; i < len; i++)
|
| - fprintf_unfiltered (file, "%02x", buf[i]);
|
| - break;
|
| - case BFD_ENDIAN_LITTLE:
|
| - for (i = len - 1; i >= 0; i--)
|
| - fprintf_unfiltered (file, "%02x", buf[i]);
|
| - break;
|
| - default:
|
| - internal_error (__FILE__, __LINE__, _("Bad switch"));
|
| - }
|
| -}
|
| -
|
| enum regcache_dump_what
|
| {
|
| regcache_dump_none, regcache_dump_raw,
|
| @@ -1133,7 +1110,7 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
|
| int footnote_register_offset = 0;
|
| int footnote_register_type_name_null = 0;
|
| long register_offset = 0;
|
| - unsigned char buf[MAX_REGISTER_SIZE];
|
| + gdb_byte buf[MAX_REGISTER_SIZE];
|
|
|
| #if 0
|
| fprintf_unfiltered (file, "nr_raw_registers %d\n",
|
| @@ -1261,10 +1238,9 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
|
| else
|
| {
|
| regcache_raw_read (regcache, regnum, buf);
|
| - fprintf_unfiltered (file, "0x");
|
| - dump_endian_bytes (file,
|
| - gdbarch_byte_order (gdbarch), buf,
|
| - regcache->descr->sizeof_register[regnum]);
|
| + print_hex_chars (file, buf,
|
| + regcache->descr->sizeof_register[regnum],
|
| + gdbarch_byte_order (gdbarch));
|
| }
|
| }
|
|
|
| @@ -1283,12 +1259,9 @@ regcache_dump (struct regcache *regcache, struct ui_file *file,
|
| else if (status == REG_UNAVAILABLE)
|
| fprintf_unfiltered (file, "<unavailable>");
|
| else
|
| - {
|
| - fprintf_unfiltered (file, "0x");
|
| - dump_endian_bytes (file,
|
| - gdbarch_byte_order (gdbarch), buf,
|
| - regcache->descr->sizeof_register[regnum]);
|
| - }
|
| + print_hex_chars (file, buf,
|
| + regcache->descr->sizeof_register[regnum],
|
| + gdbarch_byte_order (gdbarch));
|
| }
|
| }
|
|
|
|
|