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