diff options
author | Andrew Cagney <cagney@redhat.com> | 2001-06-29 04:41:20 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2001-06-29 04:41:20 +0000 |
commit | a1337894c15ed4b314e35975543eeb564aa73d55 (patch) | |
tree | 7fb3f14fe28dd9c2ac3d0320c89b73b9e95daba0 /gdb/remote-array.c | |
parent | aa8aac68231e191f586a6789282449a1d9564405 (diff) | |
download | gdb-a1337894c15ed4b314e35975543eeb564aa73d55.zip gdb-a1337894c15ed4b314e35975543eeb564aa73d55.tar.gz 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.c | 50 |
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 (®, REGISTER_RAW_SIZE (regno), i); + supply_register (regno, (char *) ®); } } |