libcortex_a9: add interrupt exit support for interrupt_handler macro #107

Merged
sb10q merged 4 commits from morgan/zynq-rs:interrupt into master 2023-11-20 12:30:29 +08:00
Showing only changes of commit c91c8cc6c3 - Show all commits

View File

@ -56,8 +56,8 @@ macro_rules! interrupt_handler {
asm!(
// setup SP, depending on CPU 0 or 1
// and preserve registers
"SUB lr, lr, #4",
"STMFD sp!, {{r0-r12, lr}}",
"sub lr, lr, #4",
"stmfd sp!, {{r0-r12, lr}}",
"mrc p15, #0, r0, c0, c0, #5",
concat!("movw r1, :lower16:", stringify!($stack0)),
concat!("movt r1, :upper16:", stringify!($stack0)),
@ -70,7 +70,7 @@ macro_rules! interrupt_handler {
concat!("bl ", stringify!($name2)),
"pop {{r0, r1}}",
"mov sp, r0",
"LDMFD sp!, {{r0-r12, pc}}^", // caret ^ : copy SPSR to the CPSR
"ldmfd sp!, {{r0-r12, pc}}^", // caret ^ : copy SPSR to the CPSR
options(noreturn)
);
}