Home | History | Annotate | Line # | Download | only in v850
satsubr.cgs revision 1.1.1.1
      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
     66