summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNicolas Pitre <nico@fluxnic.net>2009-10-22 23:23:44 -0400
committerDavid Brownell <dbrownell@users.sourceforge.net>2009-10-22 21:21:09 -0700
commit517e812de3782a6b592cb69416d1327a9b94ac9f (patch)
tree4bcd3948a521b438f1355da487a5a7c3bb77042a /src
parentf593ff0a3dd08052648da61a75f5ad5a35945194 (diff)
downloadopenocd+libswd-517e812de3782a6b592cb69416d1327a9b94ac9f.tar.gz
openocd+libswd-517e812de3782a6b592cb69416d1327a9b94ac9f.tar.bz2
openocd+libswd-517e812de3782a6b592cb69416d1327a9b94ac9f.tar.xz
openocd+libswd-517e812de3782a6b592cb69416d1327a9b94ac9f.zip
Ferocion: fix corruption of r0 when resuming Thumb mode
The wrong variable (pc instead of r0) was used. Furthermore, someone did cover this error by stupidly silencing the compiler warning that occurred before a dummy void reference to r0 was added to the code. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src')
-rw-r--r--src/target/feroceon.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/target/feroceon.c b/src/target/feroceon.c
index 8eea33e3..f084201e 100644
--- a/src/target/feroceon.c
+++ b/src/target/feroceon.c
@@ -335,7 +335,6 @@ void feroceon_branch_resume_thumb(target_t *target)
arm_jtag_t *jtag_info = &arm7_9->jtag_info;
uint32_t r0 = buf_get_u32(armv4_5->core_cache->reg_list[0].value, 0, 32);
uint32_t pc = buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32);
- (void)(r0); // use R0...
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 0);
@@ -351,7 +350,7 @@ void feroceon_branch_resume_thumb(target_t *target)
arm9tdmi_clock_out(jtag_info, ARMV4_5_T_NOP, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_T_NOP, 0, NULL, 0);
- arm9tdmi_clock_out(jtag_info, ARMV4_5_T_NOP, pc, NULL, 0);
+ arm9tdmi_clock_out(jtag_info, ARMV4_5_T_NOP, r0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_T_NOP, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_T_NOP, 0, NULL, 0);