From 017dc879a6a97becf6a55bd5ff0d73e047a8cae8 Mon Sep 17 00:00:00 2001 From: lanxb Date: Sun, 8 Apr 2018 15:11:14 +0800 Subject: [PATCH] Fixed IAR Embedded Workbench IDE (6.10.1.52143) asm error issue Signed-off-by: lanxb --- cm_backtrace/cmb_def.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/cm_backtrace/cmb_def.h b/cm_backtrace/cmb_def.h index 16b5551..580179e 100644 --- a/cm_backtrace/cmb_def.h +++ b/cm_backtrace/cmb_def.h @@ -327,24 +327,25 @@ if (!(EXPR)) \ bx lr } #elif defined(__ICCARM__) +/* IAR iccarm specific functions */ +/* Close Raw Asm Code Warning */ +#pragma diag_suppress=Pe940 static uint32_t cmb_get_msp(void) { - register uint32_t result; - __asm("MRS %0, msp" : "=r" (result)); - return(result); + __asm("mrs r0, msp"); + __asm("bx lr"); } static uint32_t cmb_get_psp(void) { - register uint32_t result; - __asm("MRS %0, psp" : "=r" (result)); - return(result); + __asm("mrs r0, psp"); + __asm("bx lr"); } static uint32_t cmb_get_sp(void) { - register uint32_t result; - __asm("MOV %0, sp" : "=r" (result)); - return(result); + __asm("mov r0, sp"); + __asm("bx lr"); } +#pragma diag_default=Pe940 #elif defined(__GNUC__) __attribute__( ( always_inline ) ) static inline uint32_t cmb_get_msp(void) { register uint32_t result;