diff options
author | ian <ian@FreeBSD.org> | 2014-03-11 15:46:03 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-03-11 15:46:03 +0000 |
commit | 61df5ff7b9222f286048b2868051b5dee2ac25d4 (patch) | |
tree | cb1a0298fbf1d51bd4fdf2222aa1ed6f76b119dc /sys/arm | |
parent | ef589c91da3d72a1fc035e8c70d4196a7c8f2d3e (diff) | |
download | FreeBSD-src-61df5ff7b9222f286048b2868051b5dee2ac25d4.zip FreeBSD-src-61df5ff7b9222f286048b2868051b5dee2ac25d4.tar.gz |
Remove some unnecessary indirection and jump right to the handler functions.
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/arm/exception.S | 39 |
1 files changed, 3 insertions, 36 deletions
diff --git a/sys/arm/arm/exception.S b/sys/arm/arm/exception.S index ec2c33b..ea5d5ba 100644 --- a/sys/arm/arm/exception.S +++ b/sys/arm/arm/exception.S @@ -322,20 +322,9 @@ ASENTRY_NP(prefetch_abort_entry) sub lr, lr, #0x00000004 /* Adjust the lr */ PUSHFRAMEINSVC - ldr r1, Lprefetch_abort_handler_address adr lr, exception_exit mov r0, sp /* pass the stack pointer as r0 */ - ldr pc, [r1] - -Lprefetch_abort_handler_address: - .word _C_LABEL(prefetch_abort_handler_address) - - .data - .global _C_LABEL(prefetch_abort_handler_address) - -_C_LABEL(prefetch_abort_handler_address): - .word prefetch_abort_handler - + b prefetch_abort_handler END(prefetch_abort_entry) /* @@ -352,18 +341,9 @@ ASENTRY_NP(data_abort_entry) sub lr, lr, #0x00000008 /* Adjust the lr */ PUSHFRAMEINSVC /* Push trap frame and switch */ /* to SVC32 mode */ - ldr r1, Ldata_abort_handler_address adr lr, exception_exit mov r0, sp /* pass the stack pointer as r0 */ - ldr pc, [r1] -Ldata_abort_handler_address: - .word _C_LABEL(data_abort_handler_address) - - .data - .global _C_LABEL(data_abort_handler_address) -_C_LABEL(data_abort_handler_address): - .word data_abort_handler - + b data_abort_handler END(data_abort_entry) /* @@ -435,23 +415,10 @@ ASENTRY_NP(undefined_entry) sub lr, lr, #0x00000004 /* Adjust the lr */ PUSHFRAMEINSVC /* Push trap frame and switch */ /* to SVC32 mode */ - ldr r1, Lundefined_handler_address adr lr, exception_exit mov r0, sp /* pass the stack pointer as r0 */ - ldr pc, [r1] -END(undefined_entry) - -ASENTRY_NP(undefinedinstruction_bounce) b undefinedinstruction -END(undefinedinstruction_bounce) - -Lundefined_handler_address: - .word _C_LABEL(undefined_handler_address) - - .data - .global _C_LABEL(undefined_handler_address) -_C_LABEL(undefined_handler_address): - .word undefinedinstruction_bounce +END(undefined_entry) /* * Entry point for FIQ interrupts. |