summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-03-10 14:14:15 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-03-10 14:14:15 +0000
commit703dc714c86b83e73acc0ed82944053f0f3b842f (patch)
tree16d17adc033a5e43062132ce236a438936681517 /src/server
parente6dac739cffdecc0c65254eb7b3f2942cfff0f68 (diff)
downloadopenocd+libswd-703dc714c86b83e73acc0ed82944053f0f3b842f.tar.gz
openocd+libswd-703dc714c86b83e73acc0ed82944053f0f3b842f.tar.bz2
openocd+libswd-703dc714c86b83e73acc0ed82944053f0f3b842f.tar.xz
openocd+libswd-703dc714c86b83e73acc0ed82944053f0f3b842f.zip
- fixed a problem with big endian XScale and GDB register packets.
- hmm..... did I screw up? Was XScale and not gdb_server busted here? My thinking was that OpenOCD has a canonical internal representation of registers that match GDB's expectations git-svn-id: svn://svn.berlios.de/openocd/trunk@484 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/server')
-rw-r--r--src/server/gdb_server.c33
1 files changed, 6 insertions, 27 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index ce45f298..1d29d212 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -773,21 +773,10 @@ void gdb_str_to_target(target_t *target, char *tstr, reg_t *reg)
buf = reg->value;
buf_len = CEIL(reg->size, 8);
- if (target->endianness == TARGET_LITTLE_ENDIAN)
+ for (i = 0; i < buf_len; i++)
{
- for (i = 0; i < buf_len; i++)
- {
- tstr[i*2] = DIGITS[(buf[i]>>4) & 0xf];
- tstr[i*2+1] = DIGITS[buf[i]&0xf];
- }
- }
- else
- {
- for (i = 0; i < buf_len; i++)
- {
- tstr[(buf_len-1-i)*2] = DIGITS[(buf[i]>>4)&0xf];
- tstr[(buf_len-1-i)*2+1] = DIGITS[buf[i]&0xf];
- }
+ tstr[i*2] = DIGITS[(buf[i]>>4) & 0xf];
+ tstr[i*2+1] = DIGITS[buf[i]&0xf];
}
}
@@ -802,20 +791,10 @@ void gdb_target_to_str(target_t *target, char *tstr, char *str)
exit(-1);
}
- if (target->endianness == TARGET_LITTLE_ENDIAN)
+ for (i = 0; i < str_len; i+=2)
{
- for (i = 0; i < str_len; i+=2)
- {
- str[str_len - i - 1] = tstr[i + 1];
- str[str_len - i - 2] = tstr[i];
- }
- }
- else
- {
- for (i = 0; i < str_len; i++)
- {
- str[i] = tstr[i];
- }
+ str[str_len - i - 1] = tstr[i + 1];
+ str[str_len - i - 2] = tstr[i];
}
}