aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote-array.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2001-06-29 04:41:20 +0000
committerAndrew Cagney <cagney@redhat.com>2001-06-29 04:41:20 +0000
commita1337894c15ed4b314e35975543eeb564aa73d55 (patch)
tree7fb3f14fe28dd9c2ac3d0320c89b73b9e95daba0 /gdb/remote-array.c
parentaa8aac68231e191f586a6789282449a1d9564405 (diff)
downloadfsf-binutils-gdb-a1337894c15ed4b314e35975543eeb564aa73d55.zip
fsf-binutils-gdb-a1337894c15ed4b314e35975543eeb564aa73d55.tar.gz
fsf-binutils-gdb-a1337894c15ed4b314e35975543eeb564aa73d55.tar.bz2
* remote-array.c (SWAP_TARGET_AND_HOST): Delete macro.
(get_hex_word): Don't use HOST_BYTE_ORDER. (array_fetch_registers): Add variable ``reg''. Use store_unsigned_integer to byte-swap the register. Delete unused local ``regs''.
Diffstat (limited to 'gdb/remote-array.c')
-rw-r--r--gdb/remote-array.c50
1 files changed, 9 insertions, 41 deletions
diff --git a/gdb/remote-array.c b/gdb/remote-array.c
index 35d271d..beb0c6b 100644
--- a/gdb/remote-array.c
+++ b/gdb/remote-array.c
@@ -44,24 +44,6 @@ extern int baud_rate;
#define ARRAY_PROMPT ">> "
-#define SWAP_TARGET_AND_HOST(buffer,len) \
- do \
- { \
- if (TARGET_BYTE_ORDER != HOST_BYTE_ORDER) \
- { \
- char tmp; \
- char *p = (char *)(buffer); \
- char *q = ((char *)(buffer)) + len - 1; \
- for (; p < q; p++, q--) \
- { \
- tmp = *q; \
- *q = *p; \
- *p = tmp; \
- } \
- } \
- } \
- while (0)
-
static void debuglogs (int, char *, ...);
static void array_open ();
static void array_close ();
@@ -508,22 +490,10 @@ get_hex_word (void)
val = 0;
-#if 0
- if (HOST_BYTE_ORDER == BIG_ENDIAN)
- {
-#endif
- for (i = 0; i < 8; i++)
- val = (val << 4) + get_hex_digit (i == 0);
-#if 0
- }
- else
- {
- for (i = 7; i >= 0; i--)
- val = (val << 4) + get_hex_digit (i == 0);
- }
-#endif
+ for (i = 0; i < 8; i++)
+ val = (val << 4) + get_hex_digit (i == 0);
- debuglogs (4, "get_hex_word() got a 0x%x for a %s host.", val, (HOST_BYTE_ORDER == BIG_ENDIAN) ? "big endian" : "little endian");
+ debuglogs (4, "get_hex_word() got a 0x%x.", val);
return val;
}
@@ -795,16 +765,14 @@ array_wait (ptid_t ptid, struct target_waitstatus *status)
static void
array_fetch_registers (int ignored)
{
- int regno, i;
+ char *reg = alloca (MAX_REGISTER_RAW_SIZE);
+ int regno;
char *p;
- unsigned char packet[PBUFSIZ];
- char regs[REGISTER_BYTES];
+ char *packet = alloca (PBUFSIZ);
debuglogs (1, "array_fetch_registers (ignored=%d)\n", ignored);
memset (packet, 0, PBUFSIZ);
- /* Unimplemented registers read as all bits zero. */
- memset (regs, 0, REGISTER_BYTES);
make_gdb_packet (packet, "g");
if (array_send_packet (packet) == 0)
error ("Couldn't transmit packet\n");
@@ -816,10 +784,10 @@ array_fetch_registers (int ignored)
{
/* supply register stores in target byte order, so swap here */
/* FIXME: convert from ASCII hex to raw bytes */
- i = ascii2hexword (packet + (regno * 8));
+ LONGEST i = ascii2hexword (packet + (regno * 8));
debuglogs (5, "Adding register %d = %x\n", regno, i);
- SWAP_TARGET_AND_HOST (&i, 4);
- supply_register (regno, (char *) &i);
+ store_unsigned_integer (&reg, REGISTER_RAW_SIZE (regno), i);
+ supply_register (regno, (char *) &reg);
}
}