sim: bfin: import testsuite
[external/binutils.git] / sim / testsuite / sim / bfin / s16.s
1 //  reg-based SHIFT test program.
2 # mach: bfin
3
4 .include "testutils.inc"
5         start
6
7
8 //  Test FDEP with no sign extension
9
10         R0.L = 0xdead;
11         R0.H = 0x1234;
12         R1.L = 0x0c08;  // pos=12 len=8
13         R1.H = 0x00ff;
14         R7 = DEPOSIT( R0, R1 );
15         DBGA ( R7.L , 0xfead );
16         DBGA ( R7.H , 0x123f );
17
18         R0.L = 0xdead;
19         R0.H = 0x1234;
20         R1.L = 0x0c04;  // pos=12 len=4
21         R1.H = 0x00ff;
22         R7 = DEPOSIT( R0, R1 );
23         DBGA ( R7.L , 0xfead );
24         DBGA ( R7.H , 0x1234 );
25
26         R0.L = 0xdead;
27         R0.H = 0x1234;
28         R1.L = 0x0c05;  // pos=12 len=5
29         R1.H = 0x00ff;
30         R7 = DEPOSIT( R0, R1 );
31         DBGA ( R7.L , 0xfead );
32         DBGA ( R7.H , 0x1235 );
33
34         R0.L = 0xdead;
35         R0.H = 0x1234;
36         R1.L = 0x0010;  // pos=0 len=16
37         R1.H = 0xffff;
38         R7 = DEPOSIT( R0, R1 );
39         DBGA ( R7.L , 0xffff );
40         DBGA ( R7.H , 0x1234 );
41
42         R0.L = 0xdead;
43         R0.H = 0x1234;
44         R1.L = 0x0011;  // pos=0 len=17
45         R1.H = 0xffff;
46         R7 = DEPOSIT( R0, R1 );
47         DBGA ( R7.L , 0xffff );
48         DBGA ( R7.H , 0x1234 );
49
50         R0.L = 0xdead;
51         R0.H = 0x1234;
52         R1.L = 0x0114;  // pos=1 len=20
53         R1.H = 0xffff;
54         R7 = DEPOSIT( R0, R1 );
55         DBGA ( R7.L , 0xffff );
56         DBGA ( R7.H , 0x1235 );
57
58         R0.L = 0xdead;
59         R0.H = 0x1234;
60         R1.L = 0x001f;  // pos=0 len=31
61         R1.H = 0xffff;
62         R7 = DEPOSIT( R0, R1 );
63         DBGA ( R7.L , 0xffff );
64         DBGA ( R7.H , 0x1234 );
65
66         R0.L = 0xdead;
67         R0.H = 0x1234;
68         R1.L = 0x1c04;  // pos=28 len=4
69         R1.H = 0xffff;
70         R7 = DEPOSIT( R0, R1 );
71         DBGA ( R7.L , 0xdead );
72         DBGA ( R7.H , 0xf234 );
73
74         R0.L = 0xdead;
75         R0.H = 0x0234;
76         R1.L = 0x1d04;  // pos=29 len=4
77         R1.H = 0xffff;
78         R7 = DEPOSIT( R0, R1 );
79         DBGA ( R7.L , 0xdead );
80         DBGA ( R7.H , 0xe234 );
81
82         R0.L = 0xdead;
83         R0.H = 0x0234;
84         R1.L = 0x1f04;  // pos=31 len=4
85         R1.H = 0xffff;
86         R7 = DEPOSIT( R0, R1 );
87         DBGA ( R7.L , 0xdead );
88         DBGA ( R7.H , 0x8234 );
89
90         R0.L = 0xdead;
91         R0.H = 0x0234;
92         R1.L = 0x2004;  // pos=32 len=4, same as pos=0 len=4
93         R1.H = 0xffff;
94         R7 = DEPOSIT( R0, R1 );
95         DBGA ( R7.L , 0xdeaf );
96         DBGA ( R7.H , 0x0234 );
97
98 //  Test FDEP with sign extension
99
100         R0.L = 0xdead;
101         R0.H = 0x1234;
102         R1.L = 0x0c08;  // pos=12 len=8
103         R1.H = 0x00ff;
104         R7 = DEPOSIT( R0, R1 ) (X);
105         DBGA ( R7.L , 0xfead );
106         DBGA ( R7.H , 0xffff );
107         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
108         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
109
110         R0.L = 0xdead;
111         R0.H = 0x1234;
112         R1.L = 0x0c08;  // pos=12 len=8
113         R1.H = 0x007f;
114         R7 = DEPOSIT( R0, R1 ) (X);
115         DBGA ( R7.L , 0xfead );
116         DBGA ( R7.H , 0x0007 );
117         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
118         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
119
120         R0.L = 0xdea0;
121         R0.H = 0x1234;
122         R1.L = 0x0110;  // pos=1 len=16
123         R1.H = 0xffff;
124         R7 = DEPOSIT( R0, R1 ) (X);
125         DBGA ( R7.L , 0xfffe );
126         DBGA ( R7.H , 0xffff );
127         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
128         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
129
130         R0.L = 0xdea0;
131         R0.H = 0x1234;
132         R1.L = 0x0101;  // pos=1 len=1
133         R1.H = 0xffff;
134         R7 = DEPOSIT( R0, R1 ) (X);
135         DBGA ( R7.L , 0xfffe );
136         DBGA ( R7.H , 0xffff );
137         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
138         CC = AN;        R7 = CC; DBGA ( R7.L , 0x1 );
139
140         R0.L = 0xdea0;
141         R0.H = 0x1234;
142         R1.L = 0x0102;  // pos=1 len=2
143         R1.H = 0x0001;
144         R7 = DEPOSIT( R0, R1 ) (X);
145         DBGA ( R7.L , 0x0002 );
146         DBGA ( R7.H , 0x0000 );
147         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
148         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
149
150         R0.L = 0xdea0;
151         R0.H = 0x1234;
152         R1.L = 0x0002;  // pos=0 len=2
153         R1.H = 0x0001;
154         R7 = DEPOSIT( R0, R1 ) (X);
155         DBGA ( R7.L , 0x0001 );
156         DBGA ( R7.H , 0x0000 );
157         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x0 );
158         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
159
160         R0.L = 0xdea0;
161         R0.H = 0x1234;
162         R1.L = 0x0000;  // pos=0 len=0
163         R1.H = 0x000f;
164         R7 = DEPOSIT( R0, R1 ) (X);
165         DBGA ( R7.L , 0x0000 );
166         DBGA ( R7.H , 0x0000 );
167         CC = AZ;        R7 = CC; DBGA ( R7.L , 0x1 );
168         CC = AN;        R7 = CC; DBGA ( R7.L , 0x0 );
169
170         pass