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