Home | History | Annotate | Line # | Download | only in bfin
s6.s revision 1.1.1.1
      1  1.1  christos //  Test  r4 = VMAX/VMAX (r5,r1)  A0<<2;
      2  1.1  christos # mach: bfin
      3  1.1  christos 
      4  1.1  christos .include "testutils.inc"
      5  1.1  christos 	start
      6  1.1  christos 
      7  1.1  christos 
      8  1.1  christos // Both max values are in high half, hence both bits
      9  1.1  christos // into A0 are 1
     10  1.1  christos 	A0 = 0;
     11  1.1  christos 	R1.L = 0x2;	// max in r1 is 3
     12  1.1  christos 	R1.H = 0x3;
     13  1.1  christos 
     14  1.1  christos 	R0.L = 0x6;	// max in r0 is 7
     15  1.1  christos 	R0.H = 0x7;
     16  1.1  christos 
     17  1.1  christos 	R6 = VIT_MAX( R1 , R0 ) (ASL);
     18  1.1  christos 
     19  1.1  christos 	DBGA ( R6.L , 0x0007 );
     20  1.1  christos 	DBGA ( R6.H , 0x0003 );
     21  1.1  christos 	R7 = A0.w;
     22  1.1  christos 	DBGA ( R7.L , 0x0003 );
     23  1.1  christos 	DBGA ( R7.H , 0x0000 );
     24  1.1  christos 	R7.L = A0.x;
     25  1.1  christos 	DBGA ( R7.L , 0x0000 );
     26  1.1  christos 
     27  1.1  christos // max value in r1 is in low, so second bit into A0 is zero
     28  1.1  christos 	A0 = 0;
     29  1.1  christos 	R1.L = 0x3;	// max in r1 is 3
     30  1.1  christos 	R1.H = 0x2;
     31  1.1  christos 
     32  1.1  christos 	R0.L = 0x6;	// max in r0 is 7
     33  1.1  christos 	R0.H = 0x7;
     34  1.1  christos 
     35  1.1  christos 	R6 = VIT_MAX( R1 , R0 ) (ASL);
     36  1.1  christos 
     37  1.1  christos 	DBGA ( R6.L , 0x0007 );
     38  1.1  christos 	DBGA ( R6.H , 0x0003 );
     39  1.1  christos 	R7 = A0.w;
     40  1.1  christos 	DBGA ( R7.L , 0x0002 );
     41  1.1  christos 	DBGA ( R7.H , 0x0000 );
     42  1.1  christos 	R7.L = A0.x;
     43  1.1  christos 	DBGA ( R7.L , 0x0000 );
     44  1.1  christos 
     45  1.1  christos // both max values in low, so both bits into A0 are zero
     46  1.1  christos 	R0.L = 0x8000;
     47  1.1  christos 	R0.H = 0x0;
     48  1.1  christos 	A0.w = R0;
     49  1.1  christos 	R1.L = 0x3;	// max in r1 is 3
     50  1.1  christos 	R1.H = 0x2;
     51  1.1  christos 
     52  1.1  christos 	R0.L = 0x7;	// max in r0 is 7
     53  1.1  christos 	R0.H = 0x6;
     54  1.1  christos 
     55  1.1  christos 	R6 = VIT_MAX( R1 , R0 ) (ASL);
     56  1.1  christos 
     57  1.1  christos 	DBGA ( R6.L , 0x0007 );
     58  1.1  christos 	DBGA ( R6.H , 0x0003 );
     59  1.1  christos 	R7 = A0.w;
     60  1.1  christos 	DBGA ( R7.L , 0x0000 );
     61  1.1  christos 	DBGA ( R7.H , 0x0002 );
     62  1.1  christos 	R7.L = A0.x;
     63  1.1  christos 	DBGA ( R7.L , 0x0000 );
     64  1.1  christos 
     65  1.1  christos // Test for correct max when one value overflows
     66  1.1  christos 	A0 = 0;
     67  1.1  christos 	R1.L = 0x7fff;	// max in r1 is 0x8001 (overflowed)
     68  1.1  christos 	R1.H = 0x8001;
     69  1.1  christos 
     70  1.1  christos 	R0.L = 0x6;	// max in r0 is 7
     71  1.1  christos 	R0.H = 0x7;
     72  1.1  christos 
     73  1.1  christos 	R6 = VIT_MAX( R1 , R0 ) (ASL);
     74  1.1  christos 
     75  1.1  christos 	DBGA ( R6.L , 0x0007 );
     76  1.1  christos 	DBGA ( R6.H , 0x8001 );
     77  1.1  christos 	R7 = A0.w;
     78  1.1  christos 	DBGA ( R7.L , 0x0003 );
     79  1.1  christos 	DBGA ( R7.H , 0x0000 );
     80  1.1  christos 	R7.L = A0.x;
     81  1.1  christos 	DBGA ( R7.L , 0x0000 );
     82  1.1  christos 
     83  1.1  christos 	pass
     84