1	.level 1.1
2	.code
3	.align 4
4; More branching instructions than you ever knew what to do with.
5;
6; We could/should test some of the corner cases for register and
7; immediate fields.  We should also check the assorted field
8; selectors to make sure they're handled correctly.
9branch_tests:
10	bl branch_tests,%r2
11	bl,n branch_tests,%r2
12	b branch_tests
13	b,n branch_tests
14	gate branch_tests,%r2
15	gate,n branch_tests,%r2
16	blr %r4,%r2
17	blr,n %r4,%r2
18	blr %r4,%r0
19	blr,n %r4,%r0
20	bv %r0(%r2)
21	bv,n %r0(%r2)
22	be 0x1234(%sr1,%r2)
23	be,n 0x1234(%sr1,%r2)
24	ble 0x1234(%sr1,%r2)
25	ble,n 0x1234(%sr1,%r2)
26
27movb_tests:
28	movb %r4,%r26,movb_tests
29	movb,= %r4,%r26,movb_tests
30	movb,< %r4,%r26,movb_tests
31	movb,od %r4,%r26,movb_tests
32	movb,tr %r4,%r26,movb_tests
33	movb,<> %r4,%r26,movb_tests
34	movb,>= %r4,%r26,movb_tests
35	movb,ev %r4,%r26,movb_tests
36movb_nullified_tests:
37	movb,n %r4,%r26,movb_tests
38	movb,=,n %r4,%r26,movb_tests
39	movb,<,n %r4,%r26,movb_tests
40	movb,od,n %r4,%r26,movb_tests
41	movb,tr,n %r4,%r26,movb_tests
42	movb,<>,n %r4,%r26,movb_tests
43	movb,>=,n %r4,%r26,movb_tests
44	movb,ev,n %r4,%r26,movb_tests
45
46movib_tests:
47	movib 5,%r26,movib_tests
48	movib,= 5,%r26,movib_tests
49	movib,< 5,%r26,movib_tests
50	movib,od 5,%r26,movib_tests
51	movib,tr 5,%r26,movib_tests
52	movib,<> 5,%r26,movib_tests
53	movib,>= 5,%r26,movib_tests
54	movib,ev 5,%r26,movib_tests
55movib_nullified_tests:
56	movib,n 5,%r26,movib_tests
57	movib,=,n 5,%r26,movib_tests
58	movib,<,n 5,%r26,movib_tests
59	movib,od,n 5,%r26,movib_tests
60	movib,tr,n 5,%r26,movib_tests
61	movib,<>,n 5,%r26,movib_tests
62	movib,>=,n 5,%r26,movib_tests
63	movib,ev,n 5,%r26,movib_tests
64
65comb_tests:
66	comb %r0,%r4,comb_tests
67	comb,= %r0,%r4,comb_tests
68	comb,< %r0,%r4,comb_tests
69	comb,<= %r0,%r4,comb_tests
70	comb,<< %r0,%r4,comb_tests
71	comb,<<= %r0,%r4,comb_tests
72	comb,sv %r0,%r4,comb_tests
73	comb,od %r0,%r4,comb_tests
74	comb,tr %r0,%r4,comb_tests
75	comb,<> %r0,%r4,comb_tests
76	comb,>= %r0,%r4,comb_tests
77	comb,> %r0,%r4,comb_tests
78	comb,>>= %r0,%r4,comb_tests
79	comb,>> %r0,%r4,comb_tests
80	comb,nsv %r0,%r4,comb_tests
81	comb,ev %r0,%r4,comb_tests
82comb_nullified_tests:
83	comb,n %r0,%r4,comb_tests
84	comb,=,n %r0,%r4,comb_tests
85	comb,<,n %r0,%r4,comb_tests
86	comb,<=,n %r0,%r4,comb_tests
87	comb,<<,n %r0,%r4,comb_tests
88	comb,<<=,n %r0,%r4,comb_tests
89	comb,sv,n %r0,%r4,comb_tests
90	comb,od,n %r0,%r4,comb_tests
91	comb,tr,n %r0,%r4,comb_tests
92	comb,<>,n %r0,%r4,comb_tests
93	comb,>=,n %r0,%r4,comb_tests
94	comb,>,n %r0,%r4,comb_tests
95	comb,>>=,n %r0,%r4,comb_tests
96	comb,>>,n %r0,%r4,comb_tests
97	comb,nsv,n %r0,%r4,comb_tests
98	comb,ev,n %r0,%r4,comb_tests
99
100comib_tests:
101	comib 0,%r4,comib_tests
102	comib,< 0,%r4,comib_tests
103	comib,<= 0,%r4,comib_tests
104	comib,<< 0,%r4,comib_tests
105	comib,<<= 0,%r4,comib_tests
106	comib,sv 0,%r4,comib_tests
107	comib,od 0,%r4,comib_tests
108	comib,tr 0,%r4,comib_tests
109	comib,<> 0,%r4,comib_tests
110	comib,>= 0,%r4,comib_tests
111	comib,> 0,%r4,comib_tests
112	comib,>>= 0,%r4,comib_tests
113	comib,>> 0,%r4,comib_tests
114	comib,nsv 0,%r4,comib_tests
115	comib,ev 0,%r4,comb_tests
116
117comib_nullified_tests:
118	comib,n 0,%r4,comib_tests
119	comib,=,n 0,%r4,comib_tests
120	comib,<,n 0,%r4,comib_tests
121	comib,<=,n 0,%r4,comib_tests
122	comib,<<,n 0,%r4,comib_tests
123	comib,<<=,n 0,%r4,comib_tests
124	comib,sv,n 0,%r4,comib_tests
125	comib,od,n 0,%r4,comib_tests
126	comib,tr,n 0,%r4,comib_tests
127	comib,<>,n 0,%r4,comib_tests
128	comib,>=,n 0,%r4,comib_tests
129	comib,>,n 0,%r4,comib_tests
130	comib,>>=,n 0,%r4,comib_tests
131	comib,>>,n 0,%r4,comib_tests
132	comib,nsv,n 0,%r4,comib_tests
133	comib,ev,n 0,%r4,comib_tests
134
135
136
137addb_tests:
138	addb %r1,%r4,addb_tests
139	addb,= %r1,%r4,addb_tests
140	addb,< %r1,%r4,addb_tests
141	addb,<= %r1,%r4,addb_tests
142	addb,nuv %r1,%r4,addb_tests
143	addb,znv %r1,%r4,addb_tests
144	addb,sv %r1,%r4,addb_tests
145	addb,od %r1,%r4,addb_tests
146	addb,tr %r1,%r4,addb_tests
147	addb,<> %r1,%r4,addb_tests
148	addb,>= %r1,%r4,addb_tests
149	addb,> %r1,%r4,addb_tests
150	addb,uv %r1,%r4,addb_tests
151	addb,vnz %r1,%r4,addb_tests
152	addb,nsv %r1,%r4,addb_tests
153	addb,ev %r1,%r4,addb_tests
154addb_nullified_tests:
155	addb,n %r1,%r4,addb_tests
156	addb,=,n %r1,%r4,addb_tests
157	addb,<,n %r1,%r4,addb_tests
158	addb,<=,n %r1,%r4,addb_tests
159	addb,nuv,n %r1,%r4,addb_tests
160	addb,znv,n %r1,%r4,addb_tests
161	addb,sv,n %r1,%r4,addb_tests
162	addb,od,n %r1,%r4,addb_tests
163	addb,tr,n %r1,%r4,addb_tests
164	addb,<>,n %r1,%r4,addb_tests
165	addb,>=,n %r1,%r4,addb_tests
166	addb,>,n %r1,%r4,addb_tests
167	addb,uv,n %r1,%r4,addb_tests
168	addb,vnz,n %r1,%r4,addb_tests
169	addb,nsv,n %r1,%r4,addb_tests
170	addb,ev,n %r1,%r4,addb_tests
171
172addib_tests:
173	addib -1,%r4,addib_tests
174	addib,= -1,%r4,addib_tests
175	addib,< -1,%r4,addib_tests
176	addib,<= -1,%r4,addib_tests
177	addib,nuv -1,%r4,addib_tests
178	addib,znv -1,%r4,addib_tests
179	addib,sv -1,%r4,addib_tests
180	addib,od -1,%r4,addib_tests
181	addib,tr -1,%r4,addib_tests
182	addib,<> -1,%r4,addib_tests
183	addib,>= -1,%r4,addib_tests
184	addib,> -1,%r4,addib_tests
185	addib,uv -1,%r4,addib_tests
186	addib,vnz -1,%r4,addib_tests
187	addib,nsv -1,%r4,addib_tests
188	addib,ev -1,%r4,comb_tests
189
190addib_nullified_tests:
191	addib,n -1,%r4,addib_tests
192	addib,=,n -1,%r4,addib_tests
193	addib,<,n -1,%r4,addib_tests
194	addib,<=,n -1,%r4,addib_tests
195	addib,nuv,n -1,%r4,addib_tests
196	addib,znv,n -1,%r4,addib_tests
197	addib,sv,n -1,%r4,addib_tests
198	addib,od,n -1,%r4,addib_tests
199	addib,tr,n -1,%r4,addib_tests
200	addib,<>,n -1,%r4,addib_tests
201	addib,>=,n -1,%r4,addib_tests
202	addib,>,n -1,%r4,addib_tests
203	addib,uv,n -1,%r4,addib_tests
204	addib,vnz,n -1,%r4,addib_tests
205	addib,nsv,n -1,%r4,addib_tests
206	addib,ev,n -1,%r4,addib_tests
207
208
209; Needs to check lots of stuff (like corner bit cases)
210bb_tests:
211	bvb,< %r4,bb_tests
212	bvb,>= %r4,bb_tests
213	bvb,<,n %r4,bb_tests
214	bvb,>=,n %r4,bb_tests
215	bb,< %r4,5,bb_tests
216	bb,>= %r4,5,bb_tests
217	bb,<,n %r4,5,bb_tests
218	bb,>=,n %r4,5,bb_tests
219
220