From cb4aec676b5bfa2671fe5fea69c274414e129c2f Mon Sep 17 00:00:00 2001 From: Daniel Krebs <github@daniel-krebs.net> Date: Wed, 19 Aug 2015 20:52:29 +0200 Subject: [PATCH] cortexm_common: don't compare with r13/sp in assembly, fix #3664 --- cpu/cortexm_common/vectors_cortexm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cpu/cortexm_common/vectors_cortexm.c b/cpu/cortexm_common/vectors_cortexm.c index 6b90b2d56d..ef19ccd8e5 100644 --- a/cpu/cortexm_common/vectors_cortexm.c +++ b/cpu/cortexm_common/vectors_cortexm.c @@ -134,7 +134,8 @@ void hard_fault_default(void) "mrs r0, psp \n" /* r0 = psp */ " out: \n" /* } */ "mov r1, #0 \n" /* corrupted = false */ - "cmp r0, sp \n" /* If msp is active stack- */ + "mov r2, sp \n" /* Cmp with SP is deprecated */ + "cmp r0, r2 \n" /* If msp is active stack- */ "bne hardfault \n" /* pointer, check if valid so */ "cmp r0, %[eram] \n" /* so calling c-func works . */ "bge fix_msp \n" /* if(r0 == msp) { */ @@ -150,7 +151,7 @@ void hard_fault_default(void) : [sram] "r" (&_sram), [eram] "r" (&_eram), [estack] "r" (&_estack) - : "r0","r1" + : "r0","r1","r2" ); } -- GitLab