This is an automated email from Gerrit.

Tomas Vanek ([email protected]) just uploaded a new patch set to Gerrit, which you 
can find at http://openocd.zylin.com/5874

-- gerrit

commit 0328de695f059677d8e094193be8a67e6ee56529
Author: Tomas Vanek <[email protected]>
Date:   Thu Oct 22 12:50:24 2020 +0200

    target/cortex_m: remove wrong xPSR.ICI/IT bits handling
    
    If a Cortex-M (not M0, M0+) target was stopped in the middle of
    a conditional IT block or in the load/store multiple instruction,
    cortex_m_debug_entry() used wrong xPSR bits to detect it and then
    cleared 8 bits of the exception number from xPSR
    - probably wrong bit mask again.
    
    I believe clearing of the ICI/IT bits in cortex_m_debug_entry() has no
    reason as Cortex-M does not use instruction injecting.
    
    Remove the wrong code.
    
    The change was originally a part of http://openocd.zylin.com/4862
    It is now re-submitted as #4862 is not ready.
    
    Change-Id: If91cd91d1b81b2684f7d5f10cf20452cde1a7f56
    Signed-off-by: Tomas Vanek <[email protected]>

diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 3b9cf6c..361320e 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -527,12 +527,6 @@ static int cortex_m_debug_entry(struct target *target)
        r = arm->cpsr;
        xPSR = buf_get_u32(r->value, 0, 32);
 
-       /* For IT instructions xPSR must be reloaded on resume and clear on 
debug exec */
-       if (xPSR & 0xf00) {
-               r->dirty = r->valid;
-               cortex_m_store_core_reg_u32(target, ARMV7M_REGSEL_xPSR, xPSR & 
~0xff);
-       }
-
        /* Are we in an exception handler */
        if (xPSR & 0x1FF) {
                armv7m->exception_number = (xPSR & 0x1FF);

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to