diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/exceptions/data.S | 9 | ||||
-rw-r--r-- | src/exceptions/prefetch.S | 11 | ||||
-rw-r--r-- | src/exceptions/undefined.S | 10 |
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" |