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