From e26ed32cd64abf12277d302badf4c08e4d7f65fb Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Fri, 15 May 2020 11:32:47 +0200 Subject: [PATCH] cpu/arm7_common: simplify irq_restore() We do not manipulate the CPSR register outside of irq_%, so we can just restore it's previous value and don't have to fiddle with the IRQ MASK bit. See https://www.keil.com/pack/doc/CMSIS/Core_A/html/group__CMSIS__CPSR.html --- cpu/arm7_common/include/irq_arch.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cpu/arm7_common/include/irq_arch.h b/cpu/arm7_common/include/irq_arch.h index 31ef860215..b7b2ee5b1b 100644 --- a/cpu/arm7_common/include/irq_arch.h +++ b/cpu/arm7_common/include/irq_arch.h @@ -58,10 +58,7 @@ static inline __attribute__((always_inline)) unsigned irq_disable(void) static inline __attribute__((always_inline)) void irq_restore(unsigned oldCPSR) { - unsigned _cpsr; - - _cpsr = __get_cpsr(); - __set_cpsr((_cpsr & ~IRQ_MASK) | (oldCPSR & IRQ_MASK)); + __set_cpsr(oldCPSR); } static inline __attribute__((always_inline)) unsigned irq_enable(void)