]> git.sur5r.net Git - openocd/commitdiff
Ferocion: fix corruption of r0 when resuming Thumb mode
authorNicolas Pitre <nico@fluxnic.net>
Fri, 23 Oct 2009 03:23:44 +0000 (23:23 -0400)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Fri, 23 Oct 2009 04:21:09 +0000 (21:21 -0700)
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>
src/target/feroceon.c

index 8eea33e3ce551d305a71f774be7402c8fd6992dc..f084201ee4c83cbddbda9c97d1a27c33a031c70f 100644 (file)
@@ -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);