equal
deleted
inserted
replaced
|
1 # mach: crisv0 crisv3 crisv8 crisv10 crisv32 |
|
2 # output: a\n |
|
3 |
|
4 |
|
5 .set smalloffset,0 |
|
6 .set largeoffset,0 |
|
7 |
|
8 |
|
9 .macro fail |
|
10 jump _fail |
|
11 .endm |
|
12 |
|
13 .global main |
|
14 main: |
|
15 moveq 0,$r3 |
|
16 |
|
17 ; Short forward branch. |
|
18 ba 0f |
|
19 addq 1,$r3 |
|
20 fail |
|
21 |
|
22 ; Max short forward branch. |
|
23 1: |
|
24 ba 2f |
|
25 addq 1,$r3 |
|
26 fail |
|
27 |
|
28 ; Short backward branch. |
|
29 0: |
|
30 ba 1b |
|
31 addq 1,$r3 |
|
32 fail |
|
33 |
|
34 .space 254-2+smalloffset+1b-.,0 |
|
35 moveq 0,$r3 |
|
36 |
|
37 2: |
|
38 ; Transit branch (long). |
|
39 ba 3f |
|
40 addq 1,$r3 |
|
41 fail |
|
42 |
|
43 moveq 0,$r3 |
|
44 4: |
|
45 ; Long forward branch. |
|
46 ba 5f |
|
47 addq 1,$r3 |
|
48 fail |
|
49 |
|
50 .space 256-2-smalloffset+4b-.,0 |
|
51 |
|
52 moveq 0,$r3 |
|
53 |
|
54 ; Max short backward branch. |
|
55 3: |
|
56 ba 4b |
|
57 addq 1,$r3 |
|
58 fail |
|
59 |
|
60 5: |
|
61 ; Max long forward branch. |
|
62 ba 6f |
|
63 addq 1,$r3 |
|
64 fail |
|
65 |
|
66 .space 32766+largeoffset-2+5b-.,0 |
|
67 |
|
68 moveq 0,$r3 |
|
69 6: |
|
70 ; Transit branch. |
|
71 ba 7f |
|
72 addq 1,$r3 |
|
73 fail |
|
74 |
|
75 moveq 0,$r3 |
|
76 9: |
|
77 jsr pass |
|
78 nop |
|
79 |
|
80 ; Transit branch. |
|
81 moveq 0,$r3 |
|
82 7: |
|
83 ba 8f |
|
84 addq 1,$r3 |
|
85 fail |
|
86 |
|
87 .space 32768-largeoffset+9b-.,0 |
|
88 |
|
89 8: |
|
90 ; Max long backward branch. |
|
91 ba 9b |
|
92 addq 1,$r3 |
|
93 fail |