]>
Commit | Line | Data |
---|---|---|
c5fbc25b DD |
1 | # v850 satsub |
2 | # mach: all | |
3 | ||
4 | .include "testutils.inc" | |
5 | ||
6 | # If the result of the add is "negative", that means we went too | |
7 | # positive. The result should be the most positive number. | |
8 | ||
9 | noflags | |
10 | seti 0x90000000, r1 | |
11 | seti 0x70000000, r2 | |
12 | satsubr r2, r1 | |
13 | ||
14 | flags sat + c + v + ns + nz | |
15 | reg r1, 0x7fffffff | |
16 | ||
17 | # Similarly, if the result of the add is "positive", that means we | |
18 | # went too negative. The result should be the most negative number. | |
19 | ||
20 | noflags | |
21 | seti 0x70000000, r1 | |
22 | seti 0x90000000, r2 | |
23 | satsubr r2, r1 | |
24 | ||
25 | flags sat + nc + v + s + nz | |
26 | reg r1, 0x80000000 | |
27 | ||
28 | # Check that the SAT flag remains set until reset | |
29 | ||
30 | seti 1, r1 | |
31 | seti 2, r2 | |
32 | satsubr r2, r1 | |
33 | ||
34 | flags sat + nc + nv + ns + nz | |
35 | reg r1, 1 | |
36 | ||
37 | noflags | |
38 | seti 1, r1 | |
39 | seti 2, r2 | |
40 | satsubr r2, r1 | |
41 | ||
42 | flags nsat + nc + nv + ns + nz | |
43 | reg r1, 1 | |
44 | ||
45 | # Check that results exactly equal to min/max don't saturate | |
46 | ||
47 | noflags | |
48 | seti 0x90000000, r1 | |
49 | seti 0x0fffffff, r2 | |
50 | satsubr r2, r1 | |
51 | ||
52 | flags nsat + c + nv + ns + nz | |
53 | reg r1, 0x7fffffff | |
54 | ||
55 | ||
56 | noflags | |
57 | seti 0x70000000, r1 | |
58 | seti 0xf0000000, r2 | |
59 | satsubr r2, r1 | |
60 | ||
61 | flags nsat + nc + nv + s + nz | |
62 | reg r1, 0x80000000 | |
63 | ||
64 | ||
65 | pass |