Remove some unnecessary indirection and jump right to the handler functions.

This commit is contained in:
Ian Lepore 2014-03-11 15:46:03 +00:00
parent b36853caf1
commit bfd2258ed0

View File

@ -322,20 +322,9 @@ ASENTRY_NP(prefetch_abort_entry)
sub lr, lr, #0x00000004 /* Adjust the lr */ sub lr, lr, #0x00000004 /* Adjust the lr */
PUSHFRAMEINSVC PUSHFRAMEINSVC
ldr r1, Lprefetch_abort_handler_address
adr lr, exception_exit adr lr, exception_exit
mov r0, sp /* pass the stack pointer as r0 */ mov r0, sp /* pass the stack pointer as r0 */
ldr pc, [r1] b prefetch_abort_handler
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
END(prefetch_abort_entry) END(prefetch_abort_entry)
/* /*
@ -352,18 +341,9 @@ ASENTRY_NP(data_abort_entry)
sub lr, lr, #0x00000008 /* Adjust the lr */ sub lr, lr, #0x00000008 /* Adjust the lr */
PUSHFRAMEINSVC /* Push trap frame and switch */ PUSHFRAMEINSVC /* Push trap frame and switch */
/* to SVC32 mode */ /* to SVC32 mode */
ldr r1, Ldata_abort_handler_address
adr lr, exception_exit adr lr, exception_exit
mov r0, sp /* pass the stack pointer as r0 */ mov r0, sp /* pass the stack pointer as r0 */
ldr pc, [r1] b data_abort_handler
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
END(data_abort_entry) END(data_abort_entry)
/* /*
@ -435,23 +415,10 @@ ASENTRY_NP(undefined_entry)
sub lr, lr, #0x00000004 /* Adjust the lr */ sub lr, lr, #0x00000004 /* Adjust the lr */
PUSHFRAMEINSVC /* Push trap frame and switch */ PUSHFRAMEINSVC /* Push trap frame and switch */
/* to SVC32 mode */ /* to SVC32 mode */
ldr r1, Lundefined_handler_address
adr lr, exception_exit adr lr, exception_exit
mov r0, sp /* pass the stack pointer as r0 */ mov r0, sp /* pass the stack pointer as r0 */
ldr pc, [r1]
END(undefined_entry)
ASENTRY_NP(undefinedinstruction_bounce)
b undefinedinstruction b undefinedinstruction
END(undefinedinstruction_bounce) END(undefined_entry)
Lundefined_handler_address:
.word _C_LABEL(undefined_handler_address)
.data
.global _C_LABEL(undefined_handler_address)
_C_LABEL(undefined_handler_address):
.word undefinedinstruction_bounce
/* /*
* Entry point for FIQ interrupts. * Entry point for FIQ interrupts.