]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/testsuite/d30v-elf/tick.s
* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[thirdparty/binutils-gdb.git] / sim / testsuite / d30v-elf / tick.s
CommitLineData
d9c61e83
AC
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
22loop:
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
41handler:
42 jmp real_handler
43real_handler:
44 add r10, r0, 1
45 add r11, r0, flag
46 stb r10, @(r11,0)
47 reit
48
49
50flag: .long 0
51tick: .ascii "Tick\r\n"