Commit | Line | Data |
---|---|---|
1d7b4a70 MF |
1 | /* ALU test program. |
2 | * Test instructions | |
3 | * (r7,r6) = +/- (r0,r1); | |
4 | * (r7,r6) = +/- (r0,r1)s; | |
5 | */ | |
6 | # mach: bfin | |
7 | ||
8 | .include "testutils.inc" | |
9 | start | |
10 | ||
11 | ||
12 | // test positive overflow | |
13 | R0.L = 0xffff; | |
14 | R0.H = 0x7fff; | |
15 | R1.L = 0x0001; | |
16 | R1.H = 0x0000; | |
17 | R7 = 0; | |
18 | ASTAT = R7; | |
19 | R6 = R0 + R1, R7 = R0 - R1 (NS); | |
20 | DBGA ( R6.L , 0x0000 ); | |
21 | DBGA ( R6.H , 0x8000 ); | |
22 | DBGA ( R7.L , 0xfffe ); | |
23 | DBGA ( R7.H , 0x7fff ); | |
24 | CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); | |
25 | CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); | |
26 | CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); | |
27 | CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); | |
28 | ||
29 | // test positive overflow | |
30 | R0.L = 0xffff; | |
31 | R0.H = 0x7fff; | |
32 | R1.L = 0x0001; | |
33 | R1.H = 0x0000; | |
34 | R7 = 0; | |
35 | ASTAT = R7; | |
36 | R7 = R0 + R1, R6 = R0 - R1 (NS); | |
37 | DBGA ( R6.L , 0xfffe ); | |
38 | DBGA ( R6.H , 0x7fff ); | |
39 | DBGA ( R7.L , 0x0000 ); | |
40 | DBGA ( R7.H , 0x8000 ); | |
41 | CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); | |
42 | CC = AN; R7 = CC; DBGA ( R7.L , 0x1 ); | |
43 | CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); | |
44 | CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); | |
45 | ||
46 | // test positive sat | |
47 | R0.L = 0xffff; | |
48 | R0.H = 0x7fff; | |
49 | R1.L = 0x0001; | |
50 | R1.H = 0x0000; | |
51 | R7 = 0; | |
52 | ASTAT = R7; | |
53 | R6 = R0 + R1, R7 = R0 - R1 (S); | |
54 | DBGA ( R6.L , 0xffff ); | |
55 | DBGA ( R6.H , 0x7fff ); | |
56 | DBGA ( R7.L , 0xfffe ); | |
57 | DBGA ( R7.H , 0x7fff ); | |
58 | CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); | |
59 | CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); | |
60 | CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); | |
61 | CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); | |
62 | ||
63 | // test positive sat | |
64 | R0.L = 0xffff; | |
65 | R0.H = 0x7fff; | |
66 | R1.L = 0x0001; | |
67 | R1.H = 0x0000; | |
68 | R7 = 0; | |
69 | ASTAT = R7; | |
70 | R7 = R0 + R1, R6 = R0 - R1 (S); | |
71 | DBGA ( R6.L , 0xfffe ); | |
72 | DBGA ( R6.H , 0x7fff ); | |
73 | DBGA ( R7.L , 0xffff ); | |
74 | DBGA ( R7.H , 0x7fff ); | |
75 | CC = AZ; R7 = CC; DBGA ( R7.L , 0x0 ); | |
76 | CC = AN; R7 = CC; DBGA ( R7.L , 0x0 ); | |
77 | CC = V; R7 = CC; DBGA ( R7.L , 0x1 ); | |
78 | CC = AC0; R7 = CC; DBGA ( R7.L , 0x1 ); | |
79 | ||
80 | pass |