3 # START Interrupt Vector Table [[
4 jmp __PMSIZE-4 # RESET Vector
5 jmp interrupt_33 # Watchdog reset vector
38 jmp __PMSIZE-8 # Interrupt vector 32 (NMI)
39 # ]] END Interrupt Vector Table
45 _exithook: # Debugger uses '_exithook' at 0x90 to catch program exit
50 # Disable all interrupts
54 ldk $r1,0x100e3 # FT900 IRQ Control Register
56 ldk $r1,0x10123 # FT930 IRQ Control Register
61 # Initialize DATA by copying from program memory
62 ldk.l $r4,__data_load_start
63 ldk.l $r1,__data_load_end
64 ldk.l $r2,0 # Will use __data after binutils patch
68 # Copy PM[$r4] to RAM $r2
93 sub.l $sp,$sp,24 # Space for the caller argument frame
100 sta.l EXITEXIT,$r0 # simulator end of test
103 # Macro to construct the interrupt stub code.
104 # it just saves r0, loads r0 with the int vector
105 # and branches to interrupt_common.
110 lda $r0,(vector_table + 4 * \i)
149 # On entry: r0, already saved, holds the handler function
180 pop $r0 # } matching push in interrupt_0-31 above
183 # Null function for unassigned interrupt to point at
197 .global __gxx_personality_sj0
198 __gxx_personality_sj0: