Remove some unnecessary indirection and jump right to the handler functions.
This commit is contained in:
parent
b36853caf1
commit
bfd2258ed0
@ -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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user