sim: bfin: unify se_all helpers more
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / a5.s
CommitLineData
1d7b4a70
MF
1// ALU test program.
2// Test instructions
3// rL4= L+L (r2,r3);
4// rH4= L+H (r2,r3) S;
5// rL4= L-L (r2,r3);
6// rH4= L-H (r2,r3) S;
7# mach: bfin
8
9.include "testutils.inc"
10 start
11
12 init_r_regs 0;
13 ASTAT = R0;
14
15// overflow positive
16 R0.L = 0x0000;
17 R0.H = 0x7fff;
18 R1.L = 0x7fff;
19 R1.H = 0x0000;
20 R7 = 0;
21 ASTAT = R7;
22 R3.L = R0.H + R1.L (NS);
23 DBGA ( R3.L , 0xfffe );
24 DBGA ( R3.H , 0x0000 );
25 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
26 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
27 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
28 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
29
30// overflow negative
31 R0.L = 0xffff;
32 R0.H = 0x0000;
33 R1.L = 0x0000;
34 R1.H = 0x8000;
35 R3 = 0;
36 R7 = 0;
37 ASTAT = R7;
38 R3.H = R0.L + R1.H (NS);
39 DBGA ( R3.L , 0x0000 );
40 DBGA ( R3.H , 0x7fff );
41 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
42 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
43 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
44 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
45
46// saturate positive
47 R0.L = 0x0000;
48 R0.H = 0x7fff;
49 R1.L = 0x7fff;
50 R1.H = 0x0000;
51 R3 = 0;
52 R7 = 0;
53 ASTAT = R7;
54 R3.L = R0.H + R1.L (S);
55 DBGA ( R3.L , 0x7fff );
56 DBGA ( R3.H , 0x0000 );
57 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
58 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
59 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
60 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
61
62// saturate negative
63 R0.L = 0xffff;
64 R0.H = 0x0000;
65 R1.L = 0x0000;
66 R1.H = 0x8000;
67 R3 = 0;
68 R7 = 0;
69 ASTAT = R7;
70 R3.L = R0.L + R1.H (S);
71 DBGA ( R3.L , 0x8000 );
72 DBGA ( R3.H , 0x0000 );
73 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
74 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
75 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
76 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
77
78// overflow positive with subtraction
79 R0.L = 0x0000;
80 R0.H = 0x7fff;
81 R1.L = 0xffff;
82 R1.H = 0x0000;
83 R7 = 0;
84 ASTAT = R7;
85 R3.L = R0.H - R1.L (NS);
86 DBGA ( R3.L , 0x8000 );
87 DBGA ( R3.H , 0x0000 );
88 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
89 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
90 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
91 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
92
93// overflow negative with subtraction
94 R0.L = 0x8000;
95 R0.H = 0x0000;
96 R1.L = 0x0000;
97 R1.H = 0x0001;
98 R3 = 0;
99 R7 = 0;
100 ASTAT = R7;
101 R3.H = R0.L - R1.H (NS);
102 DBGA ( R3.L , 0x0000 );
103 DBGA ( R3.H , 0x7fff );
104 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
105 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
106 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
107 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
108
109// saturate positive with subtraction
110 R0.L = 0x0000;
111 R0.H = 0x7fff;
112 R1.L = 0xffff;
113 R1.H = 0x0000;
114 R7 = 0;
115 ASTAT = R7;
116 R3.H = R0.H - R1.L (S);
117 DBGA ( R3.L , 0x0000 );
118 DBGA ( R3.H , 0x7fff );
119 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
120 CC = AN; R7 = CC; DBGA ( R7.L , 0x0 );
121 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
122 CC = AC0; R7 = CC; DBGA ( R7.L , 0x0 );
123
124// saturate negative with subtraction
125 R0.L = 0x8000;
126 R0.H = 0x0000;
127 R1.L = 0x0000;
128 R1.H = 0x0001;
129 R3 = 0;
130 R7 = 0;
131 ASTAT = R7;
132 R3.H = R0.L - R1.H (S);
133 DBGA ( R3.L , 0x0000 );
134 DBGA ( R3.H , 0x8000 );
135 CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 );
136 CC = AN; R7 = CC; DBGA ( R7.L , 0x1 );
137 CC = V; R7 = CC; DBGA ( R7.L , 0x1 );
138 CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 );
139
140 pass
This page took 0.060144 seconds and 4 git commands to generate.