Home | History | Annotate | Line # | Download | only in bfin
      1  1.1  christos /*  ALU test program.
      2  1.1  christos  *  Test instructions
      3  1.1  christos  *  (r7,r6) = +/- (r0,r1);
      4  1.1  christos  *  (r7,r6) = +/- (r0,r1)s;
      5  1.1  christos  */
      6  1.1  christos # mach: bfin
      7  1.1  christos 
      8  1.1  christos .include "testutils.inc"
      9  1.1  christos 	start
     10  1.1  christos 
     11  1.1  christos 
     12  1.1  christos // test positive overflow
     13  1.1  christos 	R0.L = 0xffff;
     14  1.1  christos 	R0.H = 0x7fff;
     15  1.1  christos 	R1.L = 0x0001;
     16  1.1  christos 	R1.H = 0x0000;
     17  1.1  christos 	R7 = 0;
     18  1.1  christos 	ASTAT = R7;
     19  1.1  christos 	R6 = R0 + R1, R7 = R0 - R1 (NS);
     20  1.1  christos 	DBGA ( R6.L , 0x0000 );
     21  1.1  christos 	DBGA ( R6.H , 0x8000 );
     22  1.1  christos 	DBGA ( R7.L , 0xfffe );
     23  1.1  christos 	DBGA ( R7.H , 0x7fff );
     24  1.1  christos 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     25  1.1  christos 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
     26  1.1  christos 	CC =  V;	R7 = CC; DBGA ( R7.L , 0x1 );
     27  1.1  christos 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x1 );
     28  1.1  christos 
     29  1.1  christos // test positive overflow
     30  1.1  christos 	R0.L = 0xffff;
     31  1.1  christos 	R0.H = 0x7fff;
     32  1.1  christos 	R1.L = 0x0001;
     33  1.1  christos 	R1.H = 0x0000;
     34  1.1  christos 	R7 = 0;
     35  1.1  christos 	ASTAT = R7;
     36  1.1  christos 	R7 = R0 + R1, R6 = R0 - R1 (NS);
     37  1.1  christos 	DBGA ( R6.L , 0xfffe );
     38  1.1  christos 	DBGA ( R6.H , 0x7fff );
     39  1.1  christos 	DBGA ( R7.L , 0x0000 );
     40  1.1  christos 	DBGA ( R7.H , 0x8000 );
     41  1.1  christos 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     42  1.1  christos 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
     43  1.1  christos 	CC =  V;	R7 = CC; DBGA ( R7.L , 0x1 );
     44  1.1  christos 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x1 );
     45  1.1  christos 
     46  1.1  christos // test positive sat
     47  1.1  christos 	R0.L = 0xffff;
     48  1.1  christos 	R0.H = 0x7fff;
     49  1.1  christos 	R1.L = 0x0001;
     50  1.1  christos 	R1.H = 0x0000;
     51  1.1  christos 	R7 = 0;
     52  1.1  christos 	ASTAT = R7;
     53  1.1  christos 	R6 = R0 + R1, R7 = R0 - R1 (S);
     54  1.1  christos 	DBGA ( R6.L , 0xffff );
     55  1.1  christos 	DBGA ( R6.H , 0x7fff );
     56  1.1  christos 	DBGA ( R7.L , 0xfffe );
     57  1.1  christos 	DBGA ( R7.H , 0x7fff );
     58  1.1  christos 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     59  1.1  christos 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     60  1.1  christos 	CC =  V;	R7 = CC; DBGA ( R7.L , 0x1 );
     61  1.1  christos 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x1 );
     62  1.1  christos 
     63  1.1  christos // test positive sat
     64  1.1  christos 	R0.L = 0xffff;
     65  1.1  christos 	R0.H = 0x7fff;
     66  1.1  christos 	R1.L = 0x0001;
     67  1.1  christos 	R1.H = 0x0000;
     68  1.1  christos 	R7 = 0;
     69  1.1  christos 	ASTAT = R7;
     70  1.1  christos 	R7 = R0 + R1, R6 = R0 - R1 (S);
     71  1.1  christos 	DBGA ( R6.L , 0xfffe );
     72  1.1  christos 	DBGA ( R6.H , 0x7fff );
     73  1.1  christos 	DBGA ( R7.L , 0xffff );
     74  1.1  christos 	DBGA ( R7.H , 0x7fff );
     75  1.1  christos 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     76  1.1  christos 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     77  1.1  christos 	CC =  V;	R7 = CC; DBGA ( R7.L , 0x1 );
     78  1.1  christos 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x1 );
     79  1.1  christos 
     80  1.1  christos 	pass
     81