1//  Test ALU  ABS accumulators
2# mach: bfin
3
4.include "testutils.inc"
5	start
6
7
8	R0 = 0x00000000;
9	A0.w = R0;
10	R0 = 0x80 (X);
11	A0.x = R0;
12
13	A0 = ABS A0;
14	R4 = A0.w;
15	R5 = A0.x;
16	DBGA ( R4.H , 0xffff );	DBGA ( R4.L , 0xffff );
17	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x007f );
18
19	R0 = 0x00000001;
20	A0.w = R0;
21	R0 = 0x80 (X);
22	A0.x = R0;
23
24	A0 = ABS A0;
25	R4 = A0.w;
26	R5 = A0.x;
27	DBGA ( R4.H , 0xffff );	DBGA ( R4.L , 0xffff );
28	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x007f );
29
30	R0 = 0xffffffff;
31	A0.w = R0;
32	R0 = 0xff (X);
33	A0.x = R0;
34
35	A0 = ABS A0;
36	R4 = A0.w;
37	R5 = A0.x;
38	DBGA ( R4.H , 0x0000 );	DBGA ( R4.L , 0x0001 );
39	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x0000 );
40
41	R0 = 0xfffffff0;
42	A0.w = R0;
43	R0 = 0x7f (X);
44	A0.x = R0;
45
46	A0 = ABS A0;
47	R4 = A0.w;
48	R5 = A0.x;
49	DBGA ( R4.H , 0xffff );	DBGA ( R4.L , 0xfff0 );
50	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x007f );
51
52	R0 = 0x00000000;
53	A0.w = R0;
54	R0 = 0x80 (X);
55	A0.x = R0;
56
57	A1 = ABS A0;
58	R4 = A1.w;
59	R5 = A1.x;
60	DBGA ( R4.H , 0xffff );	DBGA ( R4.L , 0xffff );
61	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x007f );
62
63	R0 = 0x00000000;
64	A0.w = R0;
65	R0 = 0x80 (X);
66	A0.x = R0;
67
68	R0 = 0x00000002;
69	A1.w = R0;
70	R0 = 0x80 (X);
71	A1.x = R0;
72
73	A1 = ABS A1, A0 = ABS A0;
74	R4 = A0.w;
75	R5 = A0.x;
76	DBGA ( R4.H , 0xffff );	DBGA ( R4.L , 0xffff );
77	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x007f );
78
79	R4 = A1.w;
80	R5 = A1.x;
81	DBGA ( R4.H , 0xffff );	DBGA ( R4.L , 0xfffe );
82	DBGA ( R5.H , 0x0000 );	DBGA ( R5.L , 0x007f );
83
84	pass
85