sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / s15.s
1 // reg-based SHIFT test program.
2 # mach: bfin
3
4 .include "testutils.inc"
5 start
6
7
8 // Test FEXT with no sign extension
9
10 R0.L = 0xdead;
11 R0.H = 0x1234;
12 R1.L = 0x0810; // pos=8 len=16
13 R7 = EXTRACT( R0, R1.L ) (Z);
14 DBGA ( R7.L , 0x34de );
15 DBGA ( R7.H , 0 );
16
17 R0.L = 0xdead;
18 R0.H = 0x1234;
19 R1.L = 0x0814; // pos=8 len=20
20 R7 = EXTRACT( R0, R1.L ) (Z);
21 DBGA ( R7.L , 0x34de );
22 DBGA ( R7.H , 0x0002 );
23
24 R0.L = 0xdead;
25 R0.H = 0x1234;
26 R1.L = 0x0800; // pos=8 len=0
27 R7 = EXTRACT( R0, R1.L ) (Z);
28 DBGA ( R7.L , 0 );
29 DBGA ( R7.H , 0 );
30
31 R0.L = 0xfff1;
32 R0.H = 0xffff;
33 R1.L = 0x0001; // pos=0 len=1
34 R7 = EXTRACT( R0, R1.L ) (Z);
35 DBGA ( R7.L , 0x1 );
36 DBGA ( R7.H , 0 );
37
38 R0.L = 0xfff1;
39 R0.H = 0xffff;
40 R1.L = 0x0101; // pos=1 len=1
41 R7 = EXTRACT( R0, R1.L ) (Z);
42 DBGA ( R7.L , 0 );
43 DBGA ( R7.H , 0 );
44 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
45 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
46
47 R0.L = 0xfff1;
48 R0.H = 0xffff;
49 R1.L = 0x1810; // pos=24 len=16
50 R7 = EXTRACT( R0, R1.L ) (Z);
51 DBGA ( R7.L , 0x00ff );
52 DBGA ( R7.H , 0 );
53
54 R0.L = 0xfff1;
55 R0.H = 0xffff;
56 R1.L = 0x0020; // pos=0 len=32 is like pos=0 len=0
57 R7 = EXTRACT( R0, R1.L ) (Z);
58 DBGA ( R7.L , 0x0 );
59 DBGA ( R7.H , 0x0 );
60 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
61 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
62
63 R0.L = 0xfff1;
64 R0.H = 0xffff;
65 R1.L = 0x2020; // pos=32 len=32 is like pos=0 len=0
66 R7 = EXTRACT( R0, R1.L ) (Z);
67 DBGA ( R7.L , 0 );
68 DBGA ( R7.H , 0 );
69
70 R0.L = 0xfff1;
71 R0.H = 0xffff;
72 R1.L = 0x1f01; // pos=31 len=1
73 R7 = EXTRACT( R0, R1.L ) (Z);
74 DBGA ( R7.L , 0x1 );
75 DBGA ( R7.H , 0 );
76
77 R0.L = 0xfff1;
78 R0.H = 0xffff;
79 R1.L = 0x1000; // pos=16 len=0
80 R7 = EXTRACT( R0, R1.L ) (Z);
81 DBGA ( R7.L , 0 );
82 DBGA ( R7.H , 0 );
83
84 // Test FEXT with sign extension
85
86 R0.L = 0xdead;
87 R0.H = 0x12f4;
88 R1.L = 0x0810; // pos=8 len=16
89 R7 = EXTRACT( R0, R1.L ) (X);
90 DBGA ( R7.L , 0xf4de );
91 DBGA ( R7.H , 0xffff );
92 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
93 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
94
95 R0.L = 0xdead;
96 R0.H = 0x1234;
97 R1.L = 0x0810; // pos=8 len=16
98 R7 = EXTRACT( R0, R1.L ) (X);
99 DBGA ( R7.L , 0x34de );
100 DBGA ( R7.H , 0x0000 );
101 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
102 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
103
104 R0.L = 0xdead;
105 R0.H = 0xf234;
106 R1.L = 0x1f01; // pos=31 len=1
107 R7 = EXTRACT( R0, R1.L ) (X);
108 DBGA ( R7.L , 0xffff );
109 DBGA ( R7.H , 0xffff );
110 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
111 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
112
113 R0.L = 0xdead;
114 R0.H = 0xf234;
115 R1.L = 0x1f02; // pos=31 len=2
116 R7 = EXTRACT( R0, R1.L ) (X);
117 DBGA ( R7.L , 0x0001 );
118 DBGA ( R7.H , 0x0000 );
119 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
120 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
121
122 R0.L = 0xffff;
123 R0.H = 0xffff;
124 R1.L = 0x101f; // pos=16 len=31
125 R7 = EXTRACT( R0, R1.L ) (X);
126 DBGA ( R7.L , 0xffff );
127 DBGA ( R7.H , 0x0000 );
128 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
129 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
130
131 R0.L = 0xffff;
132 R0.H = 0xffff;
133 R1.L = 0x1001; // pos=16 len=1
134 R7 = EXTRACT( R0, R1.L ) (X);
135 DBGA ( R7.L , 0xffff );
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 = 0xffff;
141 R0.H = 0xffff;
142 R1.L = 0x1000; // pos=16 len=0
143 R7 = EXTRACT( R0, R1.L ) (X);
144 DBGA ( R7.L , 0 );
145 DBGA ( R7.H , 0 );
146 CC = AZ; R7 = CC; DBGA ( R7.L , 0x1 );
147 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
148
149 pass
This page took 0.033552 seconds and 4 git commands to generate.