1//  Test extraction from accumulators:
2//  SCALE in SIGNED INTEGER mode
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9// load r0=0x00000fff
10// load r1=0x00007fff
11// load r2=0xffffffff
12// load r3=0xffff0fff
13// load r4=0x000000ff
14	loadsym P0, data0;
15	R0 = [ P0 ++ ];
16	R1 = [ P0 ++ ];
17	R2 = [ P0 ++ ];
18	R3 = [ P0 ++ ];
19	R4 = [ P0 ++ ];
20
21// SCALE
22//  0x0000000fff -> SCALE 0x1ffe
23	A1 = A0 = 0;
24	A1.w = R0;
25	A0.w = R0;
26	R5.H = A1, R5.L = A0 (ISS2);
27	DBGA ( R5.L , 0x1ffe );
28	DBGA ( R5.H , 0x1ffe );
29
30// SCALE
31//  0x0000007fff -> SCALE 0x7fff
32	A1 = A0 = 0;
33	A1.w = R1;
34	A0.w = R1;
35	R5.H = A1, R5.L = A0 (ISS2);
36	DBGA ( R5.L , 0x7fff );
37	DBGA ( R5.H , 0x7fff );
38
39// SCALE
40//  0xffffffffff -> SCALE 0xfffe
41	A1 = A0 = 0;
42	A1.w = R2;
43	A0.w = R2;
44	A1.x = R4.L;
45	A0.x = R4.L;
46	R5.H = A1, R5.L = A0 (ISS2);
47	DBGA ( R5.L , 0xfffe );
48	DBGA ( R5.H , 0xfffe );
49
50// SCALE
51//  0xffffff0fff -> SCALE 0x8000
52	A1 = A0 = 0;
53	A1.w = R3;
54	A0.w = R3;
55	A1.x = R4.L;
56	A0.x = R4.L;
57	R5.H = A1, R5.L = A0 (ISS2);
58	DBGA ( R5.L , 0x8000 );
59	DBGA ( R5.H , 0x8000 );
60
61	pass
62
63	.data
64data0:
65	.dw 0x0fff
66	.dw 0x0000
67	.dw 0x7fff
68	.dw 0x0000
69	.dw 0xffff
70	.dw 0xffff
71	.dw 0x0fff
72	.dw 0xffff
73	.dw 0x00ff
74	.dw 0x0000
75