sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / s30.s
1 // Test signbits40
2 # mach: bfin
3
4 .include "testutils.inc"
5 start
6
7
8 // positive value in accum, smaller than 1.0
9 A1 = A0 = 0;
10 R0.L = 0xffff;
11 R0.H = 0x0000;
12 A0.w = R0;
13 R0.L = 0x0000;
14 A0.x = R0;
15
16 R5.L = SIGNBITS A0;
17 _DBG R5;
18 A0 = ASHIFT A0 BY R5.L;
19 _DBG A0;
20
21 R4 = A0.w;
22 R5 = A0.x;
23 DBGA ( R4.H , 0x7fff ); DBGA ( R4.L , 0x8000 );
24 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0000 );
25
26 // neg value in accum, larger than -1.0
27 A1 = A0 = 0;
28 R0.L = 0x0000;
29 R0.H = 0xffff;
30 A0.w = R0;
31 R0.L = 0x00ff;
32 A0.x = R0;
33
34 R5.L = SIGNBITS A0;
35 _DBG R5;
36 A0 = ASHIFT A0 BY R5.L;
37 _DBG A0;
38
39 R4 = A0.w;
40 R5 = A0.x;
41 DBGA ( R4.H , 0x8000 ); DBGA ( R4.L , 0x0000 );
42 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xffff );
43
44 // positive value in accum, larger than 1.0
45 A1 = A0 = 0;
46 R0.L = 0xffff;
47 R0.H = 0xffff;
48 A0.w = R0;
49 R0.L = 0x000f;
50 A0.x = R0;
51
52 R5.L = SIGNBITS A0;
53 _DBG R5;
54 A0 = ASHIFT A0 BY R5.L;
55 _DBG A0;
56
57 R4 = A0.w;
58 R5 = A0.x;
59 DBGA ( R4.H , 0x7fff ); DBGA ( R4.L , 0xffff );
60 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0000 );
61
62 // negative value in accum, smaller than -1.0
63 A1 = A0 = 0;
64 R0.L = 0x0000;
65 R0.H = 0x0000;
66 A0.w = R0;
67 R0.L = 0x0080;
68 A0.x = R0;
69
70 R5.L = SIGNBITS A0;
71 _DBG R5;
72 A0 = ASHIFT A0 BY R5.L;
73 _DBG A0;
74
75 R4 = A0.w;
76 R5 = A0.x;
77 DBGA ( R4.H , 0x8000 ); DBGA ( R4.L , 0x0000 );
78 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xffff );
79
80 // no normalization
81 A1 = A0 = 0;
82 R0.L = 0xfffa;
83 R0.H = 0x7fff;
84 A0.w = R0;
85 R0.L = 0x0000;
86 A0.x = R0;
87
88 R5.L = SIGNBITS A0;
89 _DBG R5;
90 A0 = ASHIFT A0 BY R5.L;
91 _DBG A0;
92
93 R4 = A0.w;
94 R5 = A0.x;
95 DBGA ( R4.H , 0x7fff ); DBGA ( R4.L , 0xfffa );
96 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0000 );
97
98 // no normalization (-1.0)
99 A1 = A0 = 0;
100 R0.L = 0x0000;
101 R0.H = 0x8000;
102 A0.w = R0;
103 R0.L = 0x00ff;
104 A0.x = R0;
105
106 R5.L = SIGNBITS A0;
107 _DBG R5;
108 A0 = ASHIFT A0 BY R5.L;
109 _DBG A0;
110
111 R4 = A0.w;
112 R5 = A0.x;
113 DBGA ( R4.H , 0x8000 ); DBGA ( R4.L , 0x0000 );
114 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xffff );
115
116 // norm by 1
117 A1 = A0 = 0;
118 R0.L = 0x0000;
119 R0.H = 0x8000;
120 A0.w = R0;
121 R0.L = 0x0000;
122 A0.x = R0;
123
124 R5.L = SIGNBITS A0;
125 _DBG R5;
126 A0 = ASHIFT A0 BY R5.L;
127 _DBG A0;
128
129 R4 = A0.w;
130 R5 = A0.x;
131 DBGA ( R4.H , 0x4000 ); DBGA ( R4.L , 0x0000 );
132 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0000 );
133
134 // norm by 1
135 A1 = A0 = 0;
136 R0.L = 0x0000;
137 R0.H = 0x0000;
138 A0.w = R0;
139 R0.L = 0x00ff;
140 A0.x = R0;
141
142 R5.L = SIGNBITS A0;
143 _DBG R5;
144 A0 = ASHIFT A0 BY R5.L;
145 _DBG A0;
146
147 R4 = A0.w;
148 R5 = A0.x;
149 DBGA ( R4.H , 0x8000 ); DBGA ( R4.L , 0x0000 );
150 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xffff );
151
152 pass
This page took 0.032797 seconds and 4 git commands to generate.