Home | History | Annotate | Line # | Download | only in bfin
      1  1.1  christos //  Test extraction from accumulators:
      2  1.1  christos //  SIGNED FRACTIONAL and SIGNED INT mode into register PAIR
      3  1.1  christos # mach: bfin
      4  1.1  christos 
      5  1.1  christos .include "testutils.inc"
      6  1.1  christos 	start
      7  1.1  christos 
      8  1.1  christos 
      9  1.1  christos // load r0=0x7ffffff0
     10  1.1  christos // load r1=0xfffffff0
     11  1.1  christos // load r2=0x0fffffff
     12  1.1  christos // load r3=0x80100000
     13  1.1  christos // load r4=0x000000ff
     14  1.1  christos 	loadsym P0, data0;
     15  1.1  christos 	R0 = [ P0 ++ ];
     16  1.1  christos 	R1 = [ P0 ++ ];
     17  1.1  christos 	R2 = [ P0 ++ ];
     18  1.1  christos 	R3 = [ P0 ++ ];
     19  1.1  christos 	R4 = [ P0 ++ ];
     20  1.1  christos 
     21  1.1  christos // extract
     22  1.1  christos // 0x007ffffff0 -> 0x7fffffff0
     23  1.1  christos 	A1 = A0 = 0;
     24  1.1  christos 	A1.w = R0;
     25  1.1  christos 	A0.w = R0;
     26  1.1  christos 	R7 = A1,  R6 = A0;
     27  1.1  christos 	DBGA ( R7.L , 0xfff0 );
     28  1.1  christos 	DBGA ( R7.H , 0x7fff );
     29  1.1  christos 	DBGA ( R6.L , 0xfff0 );
     30  1.1  christos 	DBGA ( R6.H , 0x7fff );
     31  1.1  christos 
     32  1.1  christos // extract with saturate
     33  1.1  christos // 0x00fffffff0 -> 0x7ffffffff
     34  1.1  christos 	A1 = A0 = 0;
     35  1.1  christos 	A1.w = R1;
     36  1.1  christos 	A0.w = R1;
     37  1.1  christos 	R7 = A1,  R6 = A0;
     38  1.1  christos 	DBGA ( R7.L , 0xffff );
     39  1.1  christos 	DBGA ( R7.H , 0x7fff );
     40  1.1  christos 	DBGA ( R6.L , 0xffff );
     41  1.1  christos 	DBGA ( R6.H , 0x7fff );
     42  1.1  christos 
     43  1.1  christos // extract with saturate negative
     44  1.1  christos // 0xff0ffffff0 -> 0x80000000
     45  1.1  christos 	A1 = A0 = 0;
     46  1.1  christos 	A1.w = R2;
     47  1.1  christos 	A0.w = R2;
     48  1.1  christos 	A1.x = R4.L;
     49  1.1  christos 	A0.x = R4.L;
     50  1.1  christos 	R7 = A1,  R6 = A0;
     51  1.1  christos 	DBGA ( R7.L , 0x0000 );
     52  1.1  christos 	DBGA ( R7.H , 0x8000 );
     53  1.1  christos 	DBGA ( R6.L , 0x0000 );
     54  1.1  christos 	DBGA ( R6.H , 0x8000 );
     55  1.1  christos 
     56  1.1  christos // extract integer (same as fract)
     57  1.1  christos // 0x007ffffff0 -> 0x7fffffff0
     58  1.1  christos 	A1 = A0 = 0;
     59  1.1  christos 	A1.w = R0;
     60  1.1  christos 	A0.w = R0;
     61  1.1  christos 	R7 = A1,  R6 = A0  (IS);
     62  1.1  christos 	DBGA ( R7.L , 0xfff0 );
     63  1.1  christos 	DBGA ( R7.H , 0x7fff );
     64  1.1  christos 	DBGA ( R6.L , 0xfff0 );
     65  1.1  christos 	DBGA ( R6.H , 0x7fff );
     66  1.1  christos 
     67  1.1  christos // extract with saturate negative
     68  1.1  christos // 0xff0ffffff0 -> 0x80000000
     69  1.1  christos 	A1 = A0 = 0;
     70  1.1  christos 	A1.w = R2;
     71  1.1  christos 	A0.w = R2;
     72  1.1  christos 	A1.x = R4.L;
     73  1.1  christos 	A0.x = R4.L;
     74  1.1  christos 	R7 = A1,  R6 = A0  (IS);
     75  1.1  christos 	DBGA ( R7.L , 0x0000 );
     76  1.1  christos 	DBGA ( R7.H , 0x8000 );
     77  1.1  christos 	DBGA ( R6.L , 0x0000 );
     78  1.1  christos 	DBGA ( R6.H , 0x8000 );
     79  1.1  christos 
     80  1.1  christos 	pass
     81  1.1  christos 
     82  1.1  christos 	.data
     83  1.1  christos data0:
     84  1.1  christos 	.dw 0xfff0
     85  1.1  christos 	.dw 0x7fff
     86  1.1  christos 	.dw 0xfff0
     87  1.1  christos 	.dw 0xffff
     88  1.1  christos 	.dw 0xffff
     89  1.1  christos 	.dw 0x0fff
     90  1.1  christos 	.dw 0x0000
     91  1.1  christos 	.dw 0x8010
     92  1.1  christos 	.dw 0x00ff
     93  1.1  christos 	.dw 0x0000
     94