satadd.cgs revision 1.1 1 1.1 christos # v850 satadd
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 0x70000000, r1
11 1.1 christos seti 0x70000000, r2
12 1.1 christos satadd r1, r2
13 1.1 christos
14 1.1 christos flags sat + nc + v + ns + nz
15 1.1 christos reg r2, 0x7fffffff
16 1.1 christos
17 1.1 christos noflags
18 1.1 christos seti 0x7ffffffe, r1
19 1.1 christos satadd 10, r1
20 1.1 christos
21 1.1 christos flags sat + nc + v + ns + nz
22 1.1 christos reg r1, 0x7fffffff
23 1.1 christos
24 1.1 christos # Similarly, if the result of the add is "positive", that means we
25 1.1 christos # went too negative. The result should be the most negative number.
26 1.1 christos
27 1.1 christos noflags
28 1.1 christos seti 0x90000000, r1
29 1.1 christos seti 0x90000000, r2
30 1.1 christos satadd r1, r2
31 1.1 christos
32 1.1 christos flags sat + c + v + s + nz
33 1.1 christos reg r2, 0x80000000
34 1.1 christos
35 1.1 christos noflags
36 1.1 christos seti 0x80000001, r1
37 1.1 christos satadd -10, r1
38 1.1 christos
39 1.1 christos flags sat + c + v + s + nz
40 1.1 christos reg r1, 0x80000000
41 1.1 christos
42 1.1 christos # Check that the SAT flag remains set until reset
43 1.1 christos
44 1.1 christos seti 1, r1
45 1.1 christos seti 2, r2
46 1.1 christos satadd r1,r2
47 1.1 christos
48 1.1 christos flags sat + nc + nv + ns + nz
49 1.1 christos reg r2, 3
50 1.1 christos
51 1.1 christos noflags
52 1.1 christos seti 1, r1
53 1.1 christos seti 2, r2
54 1.1 christos satadd r1,r2
55 1.1 christos
56 1.1 christos flags nsat + nc + nv + ns + nz
57 1.1 christos reg r2, 3
58 1.1 christos
59 1.1 christos # Check that results exactly equal to min/max don't saturate
60 1.1 christos
61 1.1 christos noflags
62 1.1 christos seti 0x70000000, r1
63 1.1 christos seti 0x0fffffff, r2
64 1.1 christos satadd r1,r2
65 1.1 christos
66 1.1 christos flags nsat + nc + nv + ns + nz
67 1.1 christos reg r2, 0x7fffffff
68 1.1 christos
69 1.1 christos
70 1.1 christos noflags
71 1.1 christos seti 0x90000000, r1
72 1.1 christos seti 0xf0000000, r2
73 1.1 christos satadd r1,r2
74 1.1 christos
75 1.1 christos flags nsat + c + nv + s + nz
76 1.1 christos reg r2, 0x80000000
77 1.1 christos
78 1.1 christos
79 1.1 christos pass
80