|
|
1.1 root 1: /* This program tests the instruction LOADR. */
2: # R2 : error code
3: # 1 = error in flags
4: # 2 = mask operand changed
5: # 3 = register did not get loaded correctly
6:
7: .set N,8
8: .set Z,4
9: .set V,2
10: .set C,1
11:
12: .globl _loadr
13: _loadr:
14: callf $4,_setjmp /* save context for return from error */
15: movab _loadr,_stpc /* save subtest starting address */
16: movl $1,_subtst /* subtest number */
17: movl $1,_no_opr /* number of operands in use */
18: movl $0,_opr /* first operand */
19: 0: movl $0xffffffff,r0 /* load r0 - r13 with known data */
20: movl r0,r1
21: movl r1,r2
22: movl r2,r3
23: movl r3,r4
24: movl r4,r5
25: movl r5,r6
26: movl r6,r7
27: movl r7,r8
28: movl r8,r9
29: movl r9,r10
30: movl r10,r11
31: movl r11,r12
32: movl r12,r13
33:
34: movl $0,mask /* set mask */
35: bicpsw $(Z|V) /* clear z,v flags */
36: bispsw $(N|C) /* set n,c flag */
37: loadr mask,l0 /* this is the tested instruction */
38: jeql error0 /* error if Z set */
39: jvs error0 /* error if V set */
40: jgeq error0 /* error if N not set */
41: jcc error0 /* error if C not set */
42: jmp 1f
43: error0: movpsl _actual /* actual = psl MAYBE it is incorrect */
44: bbs $0,_scoplp,0b /* if set scope loop on error */
45: movl $2,_ercode /* error code flag failure */
46: jmp *badrtn
47:
48: 1: cmpl $0,mask /* check if mask changed */
49: jeql 1f
50: bbs $0,_scoplp,0b /* if set scope loop on error */
51: movl $3,_ercode /* error code operand was changed */
52: movl mask,_actual /* actual data */
53: movl $0,_expected /* expected data */
54: jmp *badrtn
55: 1: cmpl $0xffffffff,r0
56: jeql 1f
57: bbs $0,_scoplp,0b /* if set scope loop on error */
58: movl $1,_ercode /* error code data miscompare */
59: movl r0,_actual /* actual data */
60: movl $0xffffffff,_expected /* expected data */
61: jmp *badrtn
62: 1: cmpl $0xffffffff,r1
63: jeql 1f
64: bbs $0,_scoplp,0b /* if set scope loop on error */
65: movl $1,_ercode /* error code data miscompare */
66: movl r1,_actual /* actual data */
67: movl $0xffffffff,_expected /* expected data */
68: jmp *badrtn
69: 1: cmpl $0xffffffff,r2
70: jeql 1f
71: bbs $0,_scoplp,0b /* if set scope loop on error */
72: movl $1,_ercode /* error code data miscompare */
73: movl r2,_actual /* actual data */
74: movl $0xffffffff,_expected /* expected data */
75: jmp *badrtn
76: 1: cmpl $0xffffffff,r3
77: jeql 1f
78: bbs $0,_scoplp,0b /* if set scope loop on error */
79: movl $1,_ercode /* error code data miscompare */
80: movl r3,_actual /* actual data */
81: movl $0xffffffff,_expected /* expected data */
82: jmp *badrtn
83: 1: cmpl $0xffffffff,r4
84: jeql 1f
85: bbs $0,_scoplp,0b /* if set scope loop on error */
86: movl $1,_ercode /* error code data miscompare */
87: movl r4,_actual /* actual data */
88: movl $0xffffffff,_expected /* expected data */
89: jmp *badrtn
90: 1: cmpl $0xffffffff,r5
91: jeql 1f
92: bbs $0,_scoplp,0b /* if set scope loop on error */
93: movl $1,_ercode /* error code data miscompare */
94: movl r5,_actual /* actual data */
95: movl $0xffffffff,_expected /* expected data */
96: jmp *badrtn
97: 1: cmpl $0xffffffff,r6
98: jeql 1f
99: bbs $0,_scoplp,0b /* if set scope loop on error */
100: movl $1,_ercode /* error code data miscompare */
101: movl r6,_actual /* actual data */
102: movl $0xffffffff,_expected /* expected data */
103: jmp *badrtn
104: 1: cmpl $0xffffffff,r7
105: jeql 1f
106: bbs $0,_scoplp,0b /* if set scope loop on error */
107: movl $1,_ercode /* error code data miscompare */
108: movl r7,_actual /* actual data */
109: movl $0xffffffff,_expected /* expected data */
110: jmp *badrtn
111: 1: cmpl $0xffffffff,r8
112: jeql 1f
113: bbs $0,_scoplp,0b /* if set scope loop on error */
114: movl $1,_ercode /* error code data miscompare */
115: movl r8,_actual /* actual data */
116: movl $0xffffffff,_expected /* expected data */
117: jmp *badrtn
118: 1: cmpl $0xffffffff,r9
119: jeql 1f
120: bbs $0,_scoplp,0b /* if set scope loop on error */
121: movl $1,_ercode /* error code data miscompare */
122: movl r9,_actual /* actual data */
123: movl $0xffffffff,_expected /* expected data */
124: jmp *badrtn
125: 1: cmpl $0xffffffff,r10
126: jeql 1f
127: bbs $0,_scoplp,0b /* if set scope loop on error */
128: movl $1,_ercode /* error code data miscompare */
129: movl r10,_actual /* actual data */
130: movl $0xffffffff,_expected /* expected data */
131: jmp *badrtn
132: 1: cmpl $0xffffffff,r11
133: jeql 1f
134: bbs $0,_scoplp,0b /* if set scope loop on error */
135: movl $1,_ercode /* error code data miscompare */
136: movl r11,_actual /* actual data */
137: movl $0xffffffff,_expected /* expected data */
138: jmp *badrtn
139: 1: cmpl $0xffffffff,r12
140: jeql 1f
141: bbs $0,_scoplp,0b /* if set scope loop on error */
142: movl $1,_ercode /* error code data miscompare */
143: movl r12,_actual /* actual data */
144: movl $0xffffffff,_expected /* expected data */
145: jmp *badrtn
146: 1: cmpl $0xffffffff,r13
147: jeql next
148: bbs $0,_scoplp,0b /* if set scope loop on error */
149: movl $1,_ercode /* error code data miscompare */
150: movl r13,_actual /* actual data */
151: movl $0xffffffff,_expected /* expected data */
152: jmp *badrtn
153:
154: next:
155: bbs $0,_force_lp,0b /* if set loop on last subtest */
156: al2: callf $4,_setjmp /* save context for return from error */
157: movab al2,_stpc /* save subtest starting address */
158: movl $2,_subtst /* subtest number */
159: movl $1,_no_opr /* number of operands in use */
160: movl $0x2ad5,_opr /* first operand */
161: 0: movw $0x2ad5,mask /* Set mask to load r0,r2,r4,r6,r7,r9,r11,r13 */
162: movw mask,r10 /* use a register to contain mask */
163: bicpsw $(Z|V|N|C) /* clear all flags */
164: loadr r10,l0 /* this is the tested instruction */
165: jeql error1 /* error if Z set */
166: jvs error1 /* error if V set */
167: jlss error1 /* error if N set */
168: jcs error1 /* error if C set */
169: jmp 1f
170: error1: movpsl _actual /* actual = psl MAYBE it is incorrect */
171: bbs $0,_scoplp,0b /* if set scope loop on error */
172: movl $2,_ercode /* error code flag failure */
173: jmp *badrtn
174:
175: 1: cmpl $0x2ad5,r10
176: jeql 1f
177: bbs $0,_scoplp,0b /* if set scope loop on error */
178: movl $3,_ercode /* error code operand was changed */
179: movl r10,_actual /* actual data */
180: movl $0x2ad5,_expected /* expected data */
181: jmp *badrtn
182: 1: cmpl $0,r0 /* Check if registers loaded correctly */
183: jeql 1f
184: bbs $0,_scoplp,0b /* if set scope loop on error */
185: movl $1,_ercode /* error code data miscompare */
186: movl r0,_actual /* actual data */
187: movl $0,_expected /* expected data */
188: jmp *badrtn
189: 1: cmpl $0xffffffff,r1
190: jeql 1f
191: bbs $0,_scoplp,0b /* if set scope loop on error */
192: movl $1,_ercode /* error code data miscompare */
193: movl r1,_actual /* actual data */
194: movl $0xffffffff,_expected /* expected data */
195: jmp *badrtn
196: 1: cmpl $0x11111111,r2
197: jeql 1f
198: bbs $0,_scoplp,0b /* if set scope loop on error */
199: movl $1,_ercode /* error code data miscompare */
200: movl r2,_actual /* actual data */
201: movl $0x11111111,_expected /* expected data */
202: jmp *badrtn
203: 1: cmpl $0xffffffff,r3
204: jeql 1f
205: bbs $0,_scoplp,0b /* if set scope loop on error */
206: movl $1,_ercode /* error code data miscompare */
207: movl r3,_actual /* actual data */
208: movl $0xffffffff,_expected /* expected data */
209: jmp *badrtn
210: 1: cmpl $0x22222222,r4
211: jeql 1f
212: bbs $0,_scoplp,0b /* if set scope loop on error */
213: movl $1,_ercode /* error code data miscompare */
214: movl r4,_actual /* actual data */
215: movl $0x22222222,_expected /* expected data */
216: jmp *badrtn
217: 1: cmpl $0xffffffff,r5
218: jeql 1f
219: bbs $0,_scoplp,0b /* if set scope loop on error */
220: movl $1,_ercode /* error code data miscompare */
221: movl r5,_actual /* actual data */
222: movl $0xffffffff,_expected /* expected data */
223: jmp *badrtn
224: 1: cmpl $0x33333333,r6
225: jeql 1f
226: bbs $0,_scoplp,0b /* if set scope loop on error */
227: movl $1,_ercode /* error code data miscompare */
228: movl r6,_actual /* actual data */
229: movl $0x33333333,_expected /* expected data */
230: jmp *badrtn
231: 1: cmpl $0x44444444,r7
232: jeql 1f
233: bbs $0,_scoplp,0b /* if set scope loop on error */
234: movl $1,_ercode /* error code data miscompare */
235: movl r7,_actual /* actual data */
236: movl $0x44444444,_expected /* expected data */
237: jmp *badrtn
238: 1: cmpl $0xffffffff,r8
239: jeql 1f
240: bbs $0,_scoplp,0b /* if set scope loop on error */
241: movl $1,_ercode /* error code data miscompare */
242: movl r8,_actual /* actual data */
243: movl $0xffffffff,_expected /* expected data */
244: jmp *badrtn
245: 1: cmpl $0x55555555,r9
246: jeql 1f
247: bbs $0,_scoplp,0b /* if set scope loop on error */
248: movl $1,_ercode /* error code data miscompare */
249: movl r9,_actual /* actual data */
250: movl $0x55555555,_expected /* expected data */
251: jmp *badrtn
252: 1: cmpl $0x66666666,r11
253: jeql 1f
254: bbs $0,_scoplp,0b /* if set scope loop on error */
255: movl $1,_ercode /* error code data miscompare */
256: movl r11,_actual /* actual data */
257: movl $0x66666666,_expected /* expected data */
258: jmp *badrtn
259: 1: cmpl $0xffffffff,r12
260: jeql 1f
261: bbs $0,_scoplp,0b /* if set scope loop on error */
262: movl $1,_ercode /* error code data miscompare */
263: movl r12,_actual /* actual data */
264: movl $0xffffffff,_expected /* expected data */
265: jmp *badrtn
266: 1: cmpl $0x77777777,r13
267: jeql next1
268: bbs $0,_scoplp,0b /* if set scope loop on error */
269: movl $1,_ercode /* error code data miscompare */
270: movl r13,_actual /* actual data */
271: movl $0x77777777,_expected /* expected data */
272: jmp *badrtn
273:
274: next1:
275: bbs $0,_force_lp,0b /* if set loop on last subtest */
276: al3: callf $4,_setjmp /* save context for return from error */
277: movab al3,_stpc /* save subtest starting address */
278: movl $3,_subtst /* subtest number */
279: movl $1,_no_opr /* number of operands in use */
280: movl $0x3fff,_opr /* first operand */
281: 0: movl $0xffffffff,r0 /* load r0 - r13 with known data */
282: movl r0,r1
283: movl r1,r2
284: movl r2,r3
285: movl r3,r4
286: movl r4,r5
287: movl r5,r6
288: movl r6,r7
289: movl r7,r8
290: movl r8,r9
291: movl r9,r10
292: movl r10,r11
293: movl r11,r12
294: movl r12,r13
295:
296: movw $0x3fff,mask /* Set mask to load all registers */
297: bicpsw $(Z|V|N|C) /* clear all flags */
298: loadr mask,l0 /* this is the tested instruction */
299: jeql error2 /* error if Z set */
300: jvs error2 /* error if V set */
301: jlss error2 /* error if N set */
302: jcs error2 /* error if C set */
303: jmp 1f
304: error2: movpsl _actual /* actual = psl MAYBE it is incorrect */
305: bbs $0,_scoplp,0b /* if set scope loop on error */
306: movl $2,_ercode /* error code flag failure */
307: jmp *badrtn
308:
309: 1: cmpl $0x3fff0000,mask
310: jeql 1f
311: bbs $0,_scoplp,0b /* if set scope loop on error */
312: movl $3,_ercode /* error code operand was changed */
313: movl mask,_actual /* actual data */
314: movl $0x3fff0000,_expected /* expected data */
315: jmp *badrtn
316: 1: cmpl $0,r0 /* Check if registers loaded correctly */
317: jeql 1f
318: bbs $0,_scoplp,0b /* if set scope loop on error */
319: movl $1,_ercode /* error code data miscompare */
320: movl r0,_actual /* actual data */
321: movl $0,_expected /* expected data */
322: jmp *badrtn
323: 1: cmpl $0x11111111,r1
324: jeql 1f
325: bbs $0,_scoplp,0b /* if set scope loop on error */
326: movl $1,_ercode /* error code data miscompare */
327: movl r1,_actual /* actual data */
328: movl $0x11111111,_expected /* expected data */
329: jmp *badrtn
330: 1: cmpl $0x22222222,r2
331: jeql 1f
332: bbs $0,_scoplp,0b /* if set scope loop on error */
333: movl $1,_ercode /* error code data miscompare */
334: movl r2,_actual /* actual data */
335: movl $0x22222222,_expected /* expected data */
336: jmp *badrtn
337: 1: cmpl $0x33333333,r3
338: jeql 1f
339: bbs $0,_scoplp,0b /* if set scope loop on error */
340: movl $1,_ercode /* error code data miscompare */
341: movl r3,_actual /* actual data */
342: movl $0x33333333,_expected /* expected data */
343: jmp *badrtn
344: 1: cmpl $0x44444444,r4
345: jeql 1f
346: bbs $0,_scoplp,0b /* if set scope loop on error */
347: movl $1,_ercode /* error code data miscompare */
348: movl r4,_actual /* actual data */
349: movl $0x44444444,_expected /* expected data */
350: jmp *badrtn
351: 1: cmpl $0x55555555,r5
352: jeql 1f
353: bbs $0,_scoplp,0b /* if set scope loop on error */
354: movl $1,_ercode /* error code data miscompare */
355: movl r5,_actual /* actual data */
356: movl $0x55555555,_expected /* expected data */
357: jmp *badrtn
358: 1: cmpl $0x66666666,r6
359: jeql 1f
360: bbs $0,_scoplp,0b /* if set scope loop on error */
361: movl $1,_ercode /* error code data miscompare */
362: movl r6,_actual /* actual data */
363: movl $0x66666666,_expected /* expected data */
364: jmp *badrtn
365: 1: cmpl $0x77777777,r7
366: jeql 1f
367: bbs $0,_scoplp,0b /* if set scope loop on error */
368: movl $1,_ercode /* error code data miscompare */
369: movl r7,_actual /* actual data */
370: movl $0x77777777,_expected /* expected data */
371: jmp *badrtn
372: 1: cmpl $0x88888888,r8
373: jeql 1f
374: bbs $0,_scoplp,0b /* if set scope loop on error */
375: movl $1,_ercode /* error code data miscompare */
376: movl r8,_actual /* actual data */
377: movl $0x88888888,_expected /* expected data */
378: jmp *badrtn
379: 1: cmpl $0x99999999,r9
380: jeql 1f
381: bbs $0,_scoplp,0b /* if set scope loop on error */
382: movl $1,_ercode /* error code data miscompare */
383: movl r9,_actual /* actual data */
384: movl $0x99999999,_expected /* expected data */
385: jmp *badrtn
386: 1: cmpl $0xaaaaaaaa,r10
387: jeql 1f
388: bbs $0,_scoplp,0b /* if set scope loop on error */
389: movl $1,_ercode /* error code data miscompare */
390: movl r10,_actual /* actual data */
391: movl $0xaaaaaaaa,_expected /* expected data */
392: jmp *badrtn
393: 1: cmpl $0xbbbbbbbb,r11
394: jeql 1f
395: bbs $0,_scoplp,0b /* if set scope loop on error */
396: movl $1,_ercode /* error code data miscompare */
397: movl r11,_actual /* actual data */
398: movl $0xbbbbbbbb,_expected /* expected data */
399: jmp *badrtn
400: 1: cmpl $0xcccccccc,r12
401: jeql 1f
402: bbs $0,_scoplp,0b /* if set scope loop on error */
403: movl $1,_ercode /* error code data miscompare */
404: movl r12,_actual /* actual data */
405: movl $0xcccccccc,_expected /* expected data */
406: jmp *badrtn
407: 1: cmpl $0xdddddddd,r13
408: jeql aldn
409: bbs $0,_scoplp,0b /* if set scope loop on error */
410: movl $1,_ercode /* error code data miscompare */
411: movl r13,_actual /* actual data */
412: movl $0xdddddddd,_expected /* expected data */
413: jmp *badrtn
414:
415: aldn: bbs $0,_force_lp,0b /* if set loop on last subtest */
416: jmp *return
417:
418: /* data space */
419:
420: .align 2
421: mask:
422: .long 0
423:
424: l0: .long 0
425: l1: .long 0x11111111
426: l2: .long 0x22222222
427: l3: .long 0x33333333
428: l4: .long 0x44444444
429: l5: .long 0x55555555
430: l6: .long 0x66666666
431: l7: .long 0x77777777
432: l8: .long 0x88888888
433: l9: .long 0x99999999
434: l10: .long 0xaaaaaaaa
435: l11: .long 0xbbbbbbbb
436: l12: .long 0xcccccccc
437: l13: .long 0xdddddddd
438: .long 0xabababab
439: where: .long 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.