    @.global  ARM_Vectors
    .global  ARM_Vectors_Start @@@ Added
    .global  ARM_Vectors_End   @@@ Added

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

   @@ .section VectorsTrampolines, "xa", %progbits @@
   .section    .text.ARM_Vectors, "xa", %progbits
   
	 .arm

ARM_Vectors_Start:
    .word   0xc0cac01a

ARM_Vectors:

    @ 0:RESET
RESET_VECTOR:
    @@ b       UNDEF_VECTOR @@
    mov r15, r15  @@@ fall through to UNDEF_VECTOR

    @ 1:UNDEF INSTR
UNDEF_VECTOR:
    @@ ldr     pc, UNDEF_SubHandler_Trampoline @@
    b       UNDEF_ENTRY    

    @ 2:SWI
SWI_VECTOR:
    @@ .word   0xbaadf00d @@
    b       SWI_LOOP

    @ 3:PREFETCH ABORT
PREFETCH_VECTOR:
    @@ ldr     pc, ABORTP_SubHandler_Trampoline @@
    b       ABORTP_ENTRY

    @ 4:DATA ABORT
DATA_VECTOR:
    @@ ldr     pc, ABORTD_SubHandler_Trampoline @@
    b       ABORTD_ENTRY

    @ 5:unused
USED_VECTOR:
    .word   0xbaadf00d

    @ 6:IRQ
IRQ_VECTOR:
    @@ ldr     pc, IRQ_SubHandler_Trampoline @@
    b       IRQ_ENTRY

    @ 7:FIQ
    @ we place the FIQ handler where it was designed to go, immediately at the end of the vector table
    @ this saves an additional 3+ clock cycle branch to the handler
FIQ_Handler:
    nop     @@@ fall through

    @
    @@@@ End of Vector area @@@@

ꕔȗ
    
ARM_Vectors_End:
    .word   0xdeadcafe;

    .end
