1# mach: bfin
2
3.include "testutils.inc"
4	start
5
6
7	/* Stall tests */
8
9	r0 = 0;
10	r1 = 1;
11	loadsym p0, foo;
12	p1 = p0;
13
14pass_1:
15	cc = r0;
16	nop;
17	nop;
18
19	if cc jump _fail_1;
20	[p0++] = p0;
21	[p0++] = p0;
22	r7 = p0;
23	r5 = CC;
24	P1 += 8;
25	r6 = p1;
26	CC = R6 == R7;
27	if !CC jump _failure;
28
29	cc = R5;
30	if !cc jump over;
31
32_fail_1:
33	[p0++] = p0;
34	[p0++] = p0;
35
36back:
37	if !cc jump skip(bp);
38
39_fail_2:
40	[p0++] = p0;
41	[p0++] = p0;
42
43over:
44	if cc jump _fail_3(bp);
45	[p0++] = p0;
46	[p0++] = p0;
47	r7=p0;
48	R5=cc;
49	P1 += 8;
50	R6 = P1;
51	CC = R6 == R7;
52	if !CC jump _failure;
53
54	CC = R5;
55	if !cc jump back(bp);
56
57_fail_3:
58	[p0++] = p0;
59	[p0++] = p0;
60
61skip:
62	[p0++] = p0;
63	[p0++] = p0;
64	[p0++] = p0;
65	r7=p0;
66
67	P1 += 0xc;
68	R6 = P1;
69	CC = R6 == R7;
70	if !CC jump _failure;
71
72next:
73	[p0++] = p0;
74	r7=p0;
75	P1 += 4;
76	R6 = P1;
77	CC = R6 == R7;
78	if !CC jump _failure;
79
80pass_2:
81	cc = r1;
82	nop;
83	nop;
84
85	if !cc jump _fail_4;
86	[p0++] = p0;
87	[p0++] = p0;
88	r7=p0;
89	R5 = cc;
90	P1 += 8;
91	R6 = P1;
92	CC = R6 == R7;
93	if !CC jump _failure;
94
95	cc = R5;
96	if cc jump over_2;
97
98_fail_4:
99	[p0++] = p0;
100	[p0++] = p0;
101	P1 += 8;
102
103back_2:
104	if cc jump skip_2 (bp);
105
106_fail_5:
107	[p0++] = p0;
108	[p0++] = p0;
109	P1 += 8;
110
111over_2:
112	if !cc jump _fail_6 (bp);
113	[p0++] = p0;
114	[p0++] = p0;
115	r7=p0;
116	R5 = cc;
117	P1 += 8;
118	R6 = P1;
119	CC = R6 == R7;
120	if !CC jump _failure;
121	cc = R5;
122
123	if cc jump back_2 (bp);
124
125_fail_6:
126	[p0++] = p0;
127	[p0++] = p0;
128
129skip_2:
130	[p0++] = p0;
131	[p0++] = p0;
132	[p0++] = p0;
133	r7=p0;
134	R5 = cc;
135	P1 += 0xc;
136	R6 = P1;
137	CC = R6 == R7;
138	if !CC jump _failure;
139	cc = r5;
140
141	if cc jump next_2 (bp);
142
143next_2:
144	[p0++] = p0;
145	[p0++] = p0;
146	P1 += 8;
147	r7=p0;
148	r6 = P1;
149	CC = R6 == R7;
150	if !CC jump _failure;
151
152	cc = r0;
153_halt:
154	pass;
155
156_fail_7:
157	[p0++] = p0;
158
159_failure:
160	fail;
161
162	.data
163foo:
164	.space (0x100)
165