aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-07-27 19:21:59 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-08-06 23:36:05 -0400
commit50142cc1b34c1c414910cffc5bb42930874ca3d0 (patch)
treebebd0f66adb5f94e359ecfb2b6a6aaa9f779d703
parent635a199a470969f830f2da6dc87694a09cdb196d (diff)
downloadkutter-50142cc1b34c1c414910cffc5bb42930874ca3d0.tar.gz
kutter-50142cc1b34c1c414910cffc5bb42930874ca3d0.tar.xz
kutter-50142cc1b34c1c414910cffc5bb42930874ca3d0.zip
armcm_irq: Enhance clear_active_irq() so it works on cortex-m0
Minor rework of the assembler so that it does not require thumb-2 instructions. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/generic/armcm_irq.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/generic/armcm_irq.c b/src/generic/armcm_irq.c
index 9b5a67d5..6421e049 100644
--- a/src/generic/armcm_irq.c
+++ b/src/generic/armcm_irq.c
@@ -61,9 +61,10 @@ clear_active_irq(void)
" push { %1 }\n"
" adr %0, 1f\n"
" push { %0 }\n"
- " push { r0, r1, r2, r3, r12, lr }\n"
+ " push { r0, r1, r2, r3, r4, lr }\n"
" bx %2\n"
+ ".align 4\n"
"1:\n"
- : "=&r"(temp) : "r"(psr), "r"(0xfffffff9) : "cc");
+ : "=&r"(temp) : "r"(psr), "r"(0xfffffff9) : "r12", "cc");
}
DECL_SHUTDOWN(clear_active_irq);