1// Check MAC with scaling
2# mach: bfin
3
4.include "testutils.inc"
5	start
6
7
8	R0 = 0;
9	R1 = 0;
10	R2 = 0;
11	A1 = A0 = 0;
12// The result accumulated in A1, and stored to a reg half
13	R0.L = 23229;
14	R0.H = -23724;
15	R1.L = -313;
16	R1.H = -17732;
17	R2.H = ( A1 = R1.L * R0.L ), A0 += R1.L * R0.L (S2RND);
18	_DBG R2;
19	DBGA ( R2.H , 0xfe44 );
20
21	R0 = 0;
22	ASTAT = R0;	// clear all flags
23	A0 = 0;
24	A1 = 0;
25	R0.H = 0x8000;
26	R0.L = 0x7fff;
27	R1.H = 0x7fff;
28	R1.L = 0x8000;
29	A1 = R0.H * R1.H (M), R0.L = ( A0 -= R0.H * R1.H ) (ISS2);
30	_DBG R0;
31	DBGA ( R0.L , 0x7fff );
32
33	R0 += 0;	// clear flags
34	NOP;
35	NOP;
36	NOP;
37	NOP;
38	pass
39