aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/exceptions/data.S9
-rw-r--r--src/exceptions/prefetch.S11
-rw-r--r--src/exceptions/undefined.S10
3 files changed, 4 insertions, 26 deletions
diff --git a/src/exceptions/data.S b/src/exceptions/data.S
index e3add71..fe33215 100644
--- a/src/exceptions/data.S
+++ b/src/exceptions/data.S
@@ -3,11 +3,7 @@
data:
cpsid aif
stmfd sp!, {r0-r12,lr}
- mov r4, lr
- mov r0, #0
- mov r1, #15
- ldr r2, =data_msg
- bl draw_string
+ ldr r4, [lr, #-4]
// Output return address
mov r0, #80
mov r1, #0
@@ -31,6 +27,3 @@ data:
bl draw_hex32
ldmfd sp!, {r0-r12,lr}
subs pc, lr, #4 // Should be 8 once I can actually handle the abort
-
-.section .data
-data_msg: .asciz "Data Handler"
diff --git a/src/exceptions/prefetch.S b/src/exceptions/prefetch.S
index 5166d00..59674bd 100644
--- a/src/exceptions/prefetch.S
+++ b/src/exceptions/prefetch.S
@@ -3,18 +3,11 @@
prefetch:
cpsid aif
stmfd sp!, {r0-r12,lr}
- mov r4, lr
- mov r0, #98
- mov r1, #0
- ldr r2, =prefetch_msg
- bl draw_string
+ ldr r4, [lr, #-4]
// Output return address
mov r0, #98
- mov r1, #1
+ mov r1, #0
mov r2, r4
bl draw_hex32
ldmfd sp!, {r0-r12,lr}
subs pc, lr, #4
-
-.section .data
-prefetch_msg: .asciz "Prefetch Handler"
diff --git a/src/exceptions/undefined.S b/src/exceptions/undefined.S
index 2d4b90a..856e30f 100644
--- a/src/exceptions/undefined.S
+++ b/src/exceptions/undefined.S
@@ -6,24 +6,16 @@ undefined:
ldr r4, [lr, #-4]
mov r0, #62
mov r1, #0
- ldr r2, =undefined_msg
- bl draw_string
- mov r0, #62
- mov r1, #1
mov r2, r4
bl draw_hex32
// Output lr
ldr r0, [sp, #0x34]
sub r2, r0, #4
mov r0, #62
- mov r1, #2
+ 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}^
-
-.section .data
-undefined_msg: .asciz "Undefined Handler"
-undefined_at: .asciz "@ 0x"