1/*  DAG test program.
2 *  Test circular buffers
3 */
4# mach: bfin
5
6.include "testutils.inc"
7	start
8
9	loadsym I0, foo;
10	loadsym B0, foo;
11	loadsym R2, foo;
12	L0 = 0x10 (X);
13	M1 = 8 (X);
14	R0 = [ I0 ++ M1 ];
15	R7 = I0;
16	R1 = R7 - R2
17	DBGA ( R1.L , 0x0008 );
18	R0 = [ I0 ++ M1 ];
19	R7 = I0;
20
21	R1 = R7 - R2;
22	DBGA ( R1.L , 0x0000 );
23	R0 = [ I0 ++ M1 ];
24	R7 = I0;
25	R1 = R7 - R2
26	DBGA ( R1.L , 0x0008 );
27
28	loadsym I0, foo;
29	loadsym B0, foo;
30	loadsym R2, foo;
31	L0 = 0x10 (X);
32	M1 = -4 (X);
33	R0 = [ I0 ++ M1 ];
34	R7 = I0;
35	R1 = R7 - R2
36	DBGA ( R1.L , 0x000c );
37	R0 = [ I0 ++ M1 ];
38	R7 = I0;
39	R1 = R7 - R2
40	DBGA ( R1.L , 0x0008 );
41	R0 = [ I0 ++ M1 ];
42	R7 = I0;
43	R1 = R7 - R2;
44	DBGA ( R1.L , 0x0004 );
45	R0 = [ I0 ++ M1 ];
46	R7 = I0;
47	R1 = R7 - R2;
48	DBGA ( R1.L , 0x0000 );
49	R0 = [ I0 ++ M1 ];
50	R7 = I0;
51	R1 = R7 - R2;
52	DBGA ( R1.L , 0x000c );
53
54	loadsym I0, foo;
55	loadsym B0, foo;
56	loadsym R2, foo;
57	L0 = 0x8 (X);
58	R0 = [ I0 ++ ];
59	R7 = I0;
60	R1 = R7 - R2;
61	DBGA ( R1.L , 0x0004 );
62	R0 = [ I0 ++ ];
63	R7 = I0;
64	R1 = R7 - R2;
65	DBGA ( R1.L , 0x0000 );
66	R0 = [ I0 ++ ];
67	R7 = I0;
68	R1 = R7 - R2;
69	DBGA ( R1.L , 0x0004 );
70
71	loadsym I0, foo;
72	loadsym B0, foo;
73	loadsym R2, foo;
74	L0 = 0x8 (X);
75	R0.L = W [ I0 ++ ];
76	R7 = I0;
77	R1 = R7 - R2;
78	DBGA ( R1.L , 0x0002 );
79	R0.L = W [ I0 ++ ];
80	R7 = I0;
81	R1 = R7 - R2;
82	DBGA ( R1.L , 0x0004 );
83	R0.L = W [ I0 ++ ];
84	R7 = I0;
85	R1 = R7 - R2;
86	DBGA ( R1.L , 0x0006 );
87	R0.L = W [ I0 ++ ];
88	R7 = I0;
89	R1 = R7 - R2;
90	DBGA ( R1.L , 0x0000 );
91	R0.L = W [ I0 ++ ];
92	R7 = I0;
93	R1 = R7 - R2;
94	DBGA ( R1.L , 0x0002 );
95
96	loadsym I0, foo;
97	loadsym B0, foo;
98	loadsym R2, foo;
99	L0 = 0x8 (X);
100	R0 = [ I0 -- ];
101	R7 = I0;
102	R1 = R7 - R2;
103	DBGA ( R1.L , 0x0004 );
104	R0 = [ I0 -- ];
105	R7 = I0;
106	R1 = R7 - R2;
107	DBGA ( R1.L , 0x0000 );
108	R0 = [ I0 -- ];
109	R7 = I0;
110	R1 = R7 - R2;
111	DBGA ( R1.L , 0x0004 );
112
113	pass
114
115	.data
116foo:
117	.space (0x10);
118