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