Home | History | Annotate | Line # | Download | only in bfin
s15.s revision 1.1
      1 //  reg-based SHIFT test program.
      2 # mach: bfin
      3 
      4 .include "testutils.inc"
      5 	start
      6 
      7 
      8 //  Test FEXT with no sign extension
      9 
     10 	R0.L = 0xdead;
     11 	R0.H = 0x1234;
     12 	R1.L = 0x0810;	// pos=8 len=16
     13 	R7 = EXTRACT( R0, R1.L ) (Z);
     14 	DBGA ( R7.L , 0x34de );
     15 	DBGA ( R7.H , 0 );
     16 
     17 	R0.L = 0xdead;
     18 	R0.H = 0x1234;
     19 	R1.L = 0x0814;	// pos=8 len=20
     20 	R7 = EXTRACT( R0, R1.L ) (Z);
     21 	DBGA ( R7.L , 0x34de );
     22 	DBGA ( R7.H , 0x0002 );
     23 
     24 	R0.L = 0xdead;
     25 	R0.H = 0x1234;
     26 	R1.L = 0x0800;	// pos=8 len=0
     27 	R7 = EXTRACT( R0, R1.L ) (Z);
     28 	DBGA ( R7.L , 0 );
     29 	DBGA ( R7.H , 0 );
     30 
     31 	R0.L = 0xfff1;
     32 	R0.H = 0xffff;
     33 	R1.L = 0x0001;	// pos=0 len=1
     34 	R7 = EXTRACT( R0, R1.L ) (Z);
     35 	DBGA ( R7.L , 0x1 );
     36 	DBGA ( R7.H , 0 );
     37 
     38 	R0.L = 0xfff1;
     39 	R0.H = 0xffff;
     40 	R1.L = 0x0101;	// pos=1 len=1
     41 	R7 = EXTRACT( R0, R1.L ) (Z);
     42 	DBGA ( R7.L , 0 );
     43 	DBGA ( R7.H , 0 );
     44 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
     45 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     46 
     47 	R0.L = 0xfff1;
     48 	R0.H = 0xffff;
     49 	R1.L = 0x1810;	// pos=24 len=16
     50 	R7 = EXTRACT( R0, R1.L ) (Z);
     51 	DBGA ( R7.L , 0x00ff );
     52 	DBGA ( R7.H , 0 );
     53 
     54 	R0.L = 0xfff1;
     55 	R0.H = 0xffff;
     56 	R1.L = 0x0020;	// pos=0 len=32 is like pos=0 len=0
     57 	R7 = EXTRACT( R0, R1.L ) (Z);
     58 	DBGA ( R7.L , 0x0 );
     59 	DBGA ( R7.H , 0x0 );
     60 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
     61 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     62 
     63 	R0.L = 0xfff1;
     64 	R0.H = 0xffff;
     65 	R1.L = 0x2020;	// pos=32 len=32 is like pos=0 len=0
     66 	R7 = EXTRACT( R0, R1.L ) (Z);
     67 	DBGA ( R7.L , 0 );
     68 	DBGA ( R7.H , 0 );
     69 
     70 	R0.L = 0xfff1;
     71 	R0.H = 0xffff;
     72 	R1.L = 0x1f01;	// pos=31 len=1
     73 	R7 = EXTRACT( R0, R1.L ) (Z);
     74 	DBGA ( R7.L , 0x1 );
     75 	DBGA ( R7.H , 0 );
     76 
     77 	R0.L = 0xfff1;
     78 	R0.H = 0xffff;
     79 	R1.L = 0x1000;	// pos=16 len=0
     80 	R7 = EXTRACT( R0, R1.L ) (Z);
     81 	DBGA ( R7.L , 0 );
     82 	DBGA ( R7.H , 0 );
     83 
     84 //  Test FEXT with  sign extension
     85 
     86 	R0.L = 0xdead;
     87 	R0.H = 0x12f4;
     88 	R1.L = 0x0810;	// pos=8 len=16
     89 	R7 = EXTRACT( R0, R1.L ) (X);
     90 	DBGA ( R7.L , 0xf4de );
     91 	DBGA ( R7.H , 0xffff );
     92 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     93 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
     94 
     95 	R0.L = 0xdead;
     96 	R0.H = 0x1234;
     97 	R1.L = 0x0810;	// pos=8 len=16
     98 	R7 = EXTRACT( R0, R1.L ) (X);
     99 	DBGA ( R7.L , 0x34de );
    100 	DBGA ( R7.H , 0x0000 );
    101 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    102 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    103 
    104 	R0.L = 0xdead;
    105 	R0.H = 0xf234;
    106 	R1.L = 0x1f01;	// pos=31 len=1
    107 	R7 = EXTRACT( R0, R1.L ) (X);
    108 	DBGA ( R7.L , 0xffff );
    109 	DBGA ( R7.H , 0xffff );
    110 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    111 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
    112 
    113 	R0.L = 0xdead;
    114 	R0.H = 0xf234;
    115 	R1.L = 0x1f02;	// pos=31 len=2
    116 	R7 = EXTRACT( R0, R1.L ) (X);
    117 	DBGA ( R7.L , 0x0001 );
    118 	DBGA ( R7.H , 0x0000 );
    119 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    120 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    121 
    122 	R0.L = 0xffff;
    123 	R0.H = 0xffff;
    124 	R1.L = 0x101f;	// pos=16 len=31
    125 	R7 = EXTRACT( R0, R1.L ) (X);
    126 	DBGA ( R7.L , 0xffff );
    127 	DBGA ( R7.H , 0x0000 );
    128 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    129 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    130 
    131 	R0.L = 0xffff;
    132 	R0.H = 0xffff;
    133 	R1.L = 0x1001;	// pos=16 len=1
    134 	R7 = EXTRACT( R0, R1.L ) (X);
    135 	DBGA ( R7.L , 0xffff );
    136 	DBGA ( R7.H , 0xffff );
    137 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    138 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
    139 
    140 	R0.L = 0xffff;
    141 	R0.H = 0xffff;
    142 	R1.L = 0x1000;	// pos=16 len=0
    143 	R7 = EXTRACT( R0, R1.L ) (X);
    144 	DBGA ( R7.L , 0 );
    145 	DBGA ( R7.H , 0 );
    146 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
    147 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    148 
    149 	pass
    150