1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdio.h>
2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include "or.h"
3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include "opcodes.h"
4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define oihh(r1,i2)  ".long 0xa5" #r1 "8" #i2 "\n\t"
6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define oihl(r1,i2)  ".long 0xa5" #r1 "9" #i2 "\n\t"
7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define oilh(r1,i2)  ".long 0xa5" #r1 "a" #i2 "\n\t"
8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define oill(r1,i2)  ".long 0xa5" #r1 "b" #i2 "\n\t"
9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovstatic void do_imm_insns(void)
11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memimmsweep(oi, 0);
13b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memimmsweep(oi, 255);
14b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memimmsweep(oi, 128);
15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memimmsweep(oi, 0xaa);
16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memimmsweep(oi, 0x55);
17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	oiysweep(00);
18b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	oiysweep(ff);
19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	oiysweep(80);
20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	oiysweep(aa);
21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	oiysweep(55);
22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, 0055);
23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, 0055);
24b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, 0055);
25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, 0055);
26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, 00aa);
27b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, 00aa);
28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, 00aa);
29b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, 00aa);
30b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, 00ff);
31b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, 00ff);
32b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, 00ff);
33b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, 00ff);
34b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, 0000);
35b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, 0000);
36b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, 0000);
37b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, 0000);
38b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, ffff);
39b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, ffff);
40b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, ffff);
41b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, ffff);
42b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, aaaa);
43b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, aaaa);
44b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, aaaa);
45b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, aaaa);
46b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihh, 5555);
47b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oihl, 5555);
48b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oilh, 5555);
49b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	immsweep(oill, 5555);
50b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
51b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
52b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
53b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovstatic void do_regmem_insns(unsigned long s2)
54b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
55b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memsweep(o, s2);
56b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	memsweep(og, s2);
57b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	regsweep(or, s2);
58b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	regsweep(ogr, s2);
59b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	oysweep(s2);
60b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
61b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
62b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovint main()
63b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{
64b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x0ul);
65b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x5555555555555555ul);
66b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0xaaaaaaaaaaaaaaaaul);
67b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x8000000000000000ul);
68b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0xfffffffffffffffful);
69b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x7fffffff00000000ul);
70b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x8000000000000000ul);
71b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0xaaaaaaaa00000000ul);
72b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0xffffffff00000000ul);
73b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x000000007ffffffful);
74b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x0000000080000000ul);
75b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x0000000055555555ul);
76b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x00000000fffffffful);
77b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x000000000000fffful);
78b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x0000000000007ffful);
79b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x0000000000008000ul);
80b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_regmem_insns(0x000000000000fffful);
81b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
82b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	do_imm_insns();
83b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov
84b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov	return 0;
85b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}
86