ld: Move the .note.build-id section to near the start of the memory map.
[binutils-gdb.git] / sim / testsuite / bfin / a5.s
blobd0c0143c28297daa2ed59afafa508a4fe30a0802
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
9 .include "testutils.inc"
10 start
12 init_r_regs 0;
13 ASTAT = R0;
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 );
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 );
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 );
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 );
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 );
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 );
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 );
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 );
140 pass