sim: bfin: import testsuite
[external/binutils.git] / sim / testsuite / sim / bfin / m13.s
1 //  Test extraction from accumulators:
2 //  SIGNED FRACTIONAL and SIGNED INT mode into register PAIR
3 # mach: bfin
4
5 .include "testutils.inc"
6         start
7
8
9 // load r0=0x7ffffff0
10 // load r1=0xfffffff0
11 // load r2=0x0fffffff
12 // load r3=0x80100000
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 // extract
22 // 0x007ffffff0 -> 0x7fffffff0
23         A1 = A0 = 0;
24         A1.w = R0;
25         A0.w = R0;
26         R7 = A1,  R6 = A0;
27         DBGA ( R7.L , 0xfff0 );
28         DBGA ( R7.H , 0x7fff );
29         DBGA ( R6.L , 0xfff0 );
30         DBGA ( R6.H , 0x7fff );
31
32 // extract with saturate
33 // 0x00fffffff0 -> 0x7ffffffff
34         A1 = A0 = 0;
35         A1.w = R1;
36         A0.w = R1;
37         R7 = A1,  R6 = A0;
38         DBGA ( R7.L , 0xffff );
39         DBGA ( R7.H , 0x7fff );
40         DBGA ( R6.L , 0xffff );
41         DBGA ( R6.H , 0x7fff );
42
43 // extract with saturate negative
44 // 0xff0ffffff0 -> 0x80000000
45         A1 = A0 = 0;
46         A1.w = R2;
47         A0.w = R2;
48         A1.x = R4.L;
49         A0.x = R4.L;
50         R7 = A1,  R6 = A0;
51         DBGA ( R7.L , 0x0000 );
52         DBGA ( R7.H , 0x8000 );
53         DBGA ( R6.L , 0x0000 );
54         DBGA ( R6.H , 0x8000 );
55
56 // extract integer (same as fract)
57 // 0x007ffffff0 -> 0x7fffffff0
58         A1 = A0 = 0;
59         A1.w = R0;
60         A0.w = R0;
61         R7 = A1,  R6 = A0  (IS);
62         DBGA ( R7.L , 0xfff0 );
63         DBGA ( R7.H , 0x7fff );
64         DBGA ( R6.L , 0xfff0 );
65         DBGA ( R6.H , 0x7fff );
66
67 // extract with saturate negative
68 // 0xff0ffffff0 -> 0x80000000
69         A1 = A0 = 0;
70         A1.w = R2;
71         A0.w = R2;
72         A1.x = R4.L;
73         A0.x = R4.L;
74         R7 = A1,  R6 = A0  (IS);
75         DBGA ( R7.L , 0x0000 );
76         DBGA ( R7.H , 0x8000 );
77         DBGA ( R6.L , 0x0000 );
78         DBGA ( R6.H , 0x8000 );
79
80         pass
81
82         .data
83 data0:
84         .dw 0xfff0
85         .dw 0x7fff
86         .dw 0xfff0
87         .dw 0xffff
88         .dw 0xffff
89         .dw 0x0fff
90         .dw 0x0000
91         .dw 0x8010
92         .dw 0x00ff
93         .dw 0x0000