aboutsummaryrefslogtreecommitdiff
path: root/kernel/exceptions/undefined.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/exceptions/undefined.S')
-rw-r--r--kernel/exceptions/undefined.S21
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/exceptions/undefined.S b/kernel/exceptions/undefined.S
new file mode 100644
index 0000000..856e30f
--- /dev/null
+++ b/kernel/exceptions/undefined.S
@@ -0,0 +1,21 @@
+.section ".text.exceptions"
+.globl undefined
+undefined:
+ cpsid aif
+ stmfd sp!, {r0-r12,lr}
+ ldr r4, [lr, #-4]
+ mov r0, #62
+ mov r1, #0
+ mov r2, r4
+ bl draw_hex32
+ // Output lr
+ ldr r0, [sp, #0x34]
+ sub r2, r0, #4
+ mov r0, #62
+ mov r1, #1
+ bl draw_hex32
+ // Skip instruction for now
+ // In future,
+ // ldmfd sp!, {r0-r12,lr} // Note the lack of ^ since subs will handle it
+ // subs pc, lr, #4
+ ldmfd sp!, {r0-r12,pc}^