add missing files.
[deliverable/binutils-gdb.git] / sim / testsuite / d30v-elf / tick.s
1 .globl _start
2 #
3 # NOTE: Registers r10-r11 are reserved for the interrupt handler
4 # while the others can be used by the main loop/start code.
5
6 _start:
7 # patch the external interrupt handlers entry
8 add r1, r0, handler
9 ldw r2, @(r1, 0)
10 ldw r3, @(r1, 4)
11 add r1, r0, 0xfffff138
12 stw r2, @(r1, 0)
13 stw r3, @(r1, 4)
14
15 # enable external interrupts - cr0 == PSW
16 mvfsys r2, cr0
17 or r2, r0, 0x04000000
18 mvtsys cr0, r2
19
20
21 # wait for flag to be set
22 loop:
23 add r2, r0, flag
24 ldw r3, @(r2, 0)
25 bratzr r3, loop
26
27 # clear the flag
28 stw r0, @(r2, 0)
29
30 add r2, r0, tick
31 # putstr
32 .long 0x0e000001, 0x00f00000
33
34 bra loop
35
36 # finished
37 add r2, r0, r0 || nop
38 .long 0x0e000004, 0x00f00000
39
40
41 handler:
42 jmp real_handler
43 real_handler:
44 add r10, r0, 1
45 add r11, r0, flag
46 stb r10, @(r11,0)
47 reit
48
49
50 flag: .long 0
51 tick: .ascii "Tick\r\n"
This page took 0.03152 seconds and 4 git commands to generate.