1# mach: crisv3 crisv8 crisv10 crisv32
2# output: 0\n0\n0\n0\n0\n0\n
3
4# Test that jsr Rn and jsr [PC+] work.
5
6 .include "testutils.inc"
7 start
8x:
9 move.d 0f,r6
10 setf nzvc
11 jsr r6
12 .if ..asm.arch.cris.v32
13 nop
14 .endif
150:
16 test_move_cc 1 1 1 1
17 move srp,r3
18 sub.d 0b,r3
19 dumpr3
20
21 move.d 1f,r0
22 setf nzvc
23 jsr r0
24 .if ..asm.arch.cris.v32
25 moveq 0,r0
26 .endif
276:
28 nop
29 quit
30
312:
32 test_move_cc 0 0 0 0
33 move srp,r3
34 sub.d 3f,r3
35 dumpr3
36 jsr 4f
37 .if ..asm.arch.cris.v32
38 nop
39 .endif
407:
41 nop
42 quit
43
44; Can't use local label 8 or 9, as they're used by test_move_cc.
45y:
46 move srp,r3
47 sub.d 7b,r3
48 dumpr3
49 quit
50
514:
52 move srp,r3
53 sub.d 7b,r3
54 dumpr3
55 move.d 5f,r3
56 jump r3
57 .if ..asm.arch.cris.v32
58 moveq 0,r3
59 .endif
60 quit
61
62 .space 32770,0
631:
64 test_move_cc 1 1 1 1
65 move srp,r3
66 sub.d 6b,r3
67 dumpr3
68
69 clearf cznv
70 jsr 2b
71 .if ..asm.arch.cris.v32
72 nop
73 .endif
743:
75
76 quit
77
785:
79 move srp,r3
80 sub.d 7b,r3
81 dumpr3
82 jump y
83 .if ..asm.arch.cris.v32
84 nop
85 .endif
86 quit
87