1 /* Setup vector table. Note that undf, pabt, dabt, fiq just execute
4 #include <bbconf_info.h>
6 .global __bbconf_magic_addr
7 .global __bbconf_ptptr_addr
8 .global __bbconf_pt_addr
16 hal_vectors: LDR PC, Reset_Addr
21 NOP /* Reserved Vector */
22 #if !defined(__thumb__)
29 Reset_Addr: .word reset_handler
30 Undef_Addr: .word Undef_Handler
31 SWI_Addr: .word SWI_Handler
32 PAbt_Addr: .word PAbt_Handler
33 DAbt_Addr: .word DAbt_Handler
34 .word 0 /* Reserved Address */
35 IRQ_Addr: .word irq_handler_resolver
36 FIQ_Addr: .word FIQ_Handler
39 .word BBCONF_MAGIC_VAL
41 .word __bbconf_pt_addr
43 Undef_Handler: B Undef_Handler
44 SWI_Handler: B SWI_Handler
45 PAbt_Handler: B PAbt_Handler
46 DAbt_Handler: B DAbt_Handler
47 FIQ_Handler: B FIQ_Handler
49 #if defined(__thumb__)
52 push {r0, r1, r2, r3, r4, ip, lr}
54 adr lr, IRQ_Trampoline_ret
56 adrne lr, IRQ_Trampoline_ret_thumb+1
58 IRQ_Trampoline_ret_thumb:
64 ldm sp!, {r0, r1, r2, r3, r4, ip, pc}^