Home | History | Annotate | Line # | Download | only in v850
      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