Author: ian
Date: Tue Mar 11 15:46:03 2014
New Revision: 263030
URL: http://svnweb.freebsd.org/changeset/base/263030

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

Modified:
  head/sys/arm/arm/exception.S

Modified: head/sys/arm/arm/exception.S
==============================================================================
--- head/sys/arm/arm/exception.S        Tue Mar 11 15:43:06 2014        
(r263029)
+++ head/sys/arm/arm/exception.S        Tue Mar 11 15:46:03 2014        
(r263030)
@@ -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.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to