Home | History | Annotate | Line # | Download | only in bfin
s13.s revision 1.1
      1 //  Test  rl3 = ashift (rh0 by r5;
      2 //  Test  rl3 = lshift (rh0 by r5);
      3 # mach: bfin
      4 
      5 .include "testutils.inc"
      6 	start
      7 
      8 	init_r_regs 0;
      9 
     10 	R0 = 0;
     11 	ASTAT = R0;
     12 	R0.L = 0x1;
     13 	R0.H = 0x1;
     14 	R5.L = 4;
     15 	R7.L = ASHIFT R0.L BY R5.L;
     16 	DBGA ( R7.L , 0x0010 );
     17 	DBGA ( R7.H , 0x0000 );
     18 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     19 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     20 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
     21 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
     22 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
     23 
     24 	R0 = 0;
     25 	ASTAT = R0;
     26 	R0.L = 0x8000;
     27 	R0.H = 0x1;
     28 	R5.L = -4;
     29 	R5.H = 0;
     30 	R7.L = ASHIFT R0.L BY R5.L;
     31 	DBGA ( R7.L , 0xf800 );
     32 	DBGA ( R7.H , 0x0000 );
     33 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     34 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
     35 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
     36 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
     37 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
     38 
     39 	R0 = 0;
     40 	ASTAT = R0;
     41 	R0.L = 0x0;
     42 	R0.H = 0x1;
     43 	R5.L = 0;
     44 	R5.H = 0;
     45 	R7.L = ASHIFT R0.L BY R5.L;
     46 	DBGA ( R7.L , 0x0000 );
     47 	DBGA ( R7.H , 0x0000 );
     48 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
     49 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     50 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
     51 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
     52 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
     53 
     54 	R0 = 0;
     55 	ASTAT = R0;
     56 	R7 = 0;
     57 	R0.L = 0x1;
     58 	R0.H = 0x8000;
     59 	R5.L = -4;
     60 	R5.H = 0;
     61 	R7.H = ASHIFT R0.H BY R5.L;
     62 	DBGA ( R7.L , 0x0000 );
     63 	DBGA ( R7.H , 0xf800 );
     64 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     65 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
     66 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
     67 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
     68 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
     69 
     70 	R0 = 0;
     71 	ASTAT = R0;
     72 	R7 = 0;
     73 	R0.L = 0x1;
     74 	R0.H = 0x8000;
     75 	R5.L = -4;
     76 	R5.H = 0;
     77 	R7.L = ASHIFT R0.H BY R5.L;
     78 	DBGA ( R7.L , 0xf800 );
     79 	DBGA ( R7.H , 0x0000 );
     80 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
     81 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
     82 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
     83 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
     84 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
     85 
     86 	R0 = 0;
     87 	ASTAT = R0;
     88 	R7 = 0;
     89 	R0.L = 0x1;
     90 	R0.H = 0xffff;
     91 	R5.L = 31;	// should accept   mag of +31
     92 	R5.H = 0;
     93 	R7.L = ASHIFT R0.H BY R5.L;
     94 	DBGA ( R7.L , 0x0000 );
     95 	DBGA ( R7.H , 0x0000 );
     96 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
     97 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
     98 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
     99 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    100 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    101 
    102 	R0 = 0;
    103 	ASTAT = R0;
    104 	R7 = 0;
    105 	R0.L = 0x1;
    106 	R0.H = 0x0100;
    107 	R5.L = 63;	//  mag of 63 will appear as -1 since 6 bits are masked
    108 	R5.H = 0;
    109 	R7.L = ASHIFT R0.H BY R5.L;
    110 	DBGA ( R7.L , 0x0080 );
    111 	DBGA ( R7.H , 0x0000 );
    112 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    113 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    114 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    115 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    116 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    117 
    118 // logic shifts
    119 	R0 = 0;
    120 	ASTAT = R0;
    121 	R7 = 0;
    122 	R0.L = 0x1;
    123 	R0.H = 0x8000;
    124 	R5.L = -4;
    125 	R5.H = 0;
    126 	R7.L = LSHIFT R0.H BY R5.L;
    127 	DBGA ( R7.L , 0x0800 );
    128 	DBGA ( R7.H , 0x0000 );
    129 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    130 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    131 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    132 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    133 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    134 
    135 	R0 = 0;
    136 	ASTAT = R0;
    137 	R7 = 0;
    138 	R0.L = 0x1;
    139 	R0.H = 0x1;
    140 	R5.L = 4;
    141 	R5.H = 0;
    142 	R7.H = LSHIFT R0.L BY R5.L;
    143 	DBGA ( R7.L , 0x0000 );
    144 	DBGA ( R7.H , 0x0010 );
    145 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    146 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    147 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    148 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    149 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    150 
    151 	R0 = 0;
    152 	ASTAT = R0;
    153 	R7 = 1;
    154 	R0.L = 0x0;
    155 	R0.H = 0x0;
    156 	R5.L = 0;
    157 	R5.H = 0;
    158 	R7.L = LSHIFT R0.L BY R5.L;
    159 	DBGA ( R7.L , 0x0000 );
    160 	DBGA ( R7.H , 0x0000 );
    161 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
    162 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    163 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    164 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    165 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    166 
    167 	R0 = 0;
    168 	ASTAT = R0;
    169 	R7 = 1;
    170 	R0.L = 0x1;
    171 	R0.H = 0x0;
    172 	R5.L = 15;
    173 	R5.H = 0;
    174 	R7.L = LSHIFT R0.L BY R5.L;
    175 	DBGA ( R7.L , 0x8000 );
    176 	DBGA ( R7.H , 0x0000 );
    177 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    178 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
    179 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    180 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    181 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    182 
    183 	R0 = 0;
    184 	ASTAT = R0;
    185 	R7 = 1;
    186 	R0.L = 0x0100;
    187 	R0.H = 0x0;
    188 	R5.L = 63;	//  mag of 63 will appear as -1 since 6 bits are masked
    189 	R5.H = 0;
    190 	R7.L = LSHIFT R0.L BY R5.L;
    191 	DBGA ( R7.L , 0x0080 );
    192 	DBGA ( R7.H , 0x0000 );
    193 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    194 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    195 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    196 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    197 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    198 
    199 	R0 = 0;
    200 	ASTAT = R0;
    201 	R7 = 1;
    202 	R0.L = 0x0100;
    203 	R0.H = 0x0;
    204 	R5.L = 31;	// should accept   mag of +31
    205 	R5.H = 0;
    206 	R7.L = LSHIFT R0.L BY R5.L;
    207 	DBGA ( R7.L , 0x0000 );
    208 	DBGA ( R7.H , 0x0000 );
    209 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
    210 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    211 	CC = AC0;	R7 = CC; DBGA ( R7.L , 0x0 );
    212 	CC = AV0;	R7 = CC; DBGA ( R7.L , 0x0 );
    213 	CC = AV1;	R7 = CC; DBGA ( R7.L , 0x0 );
    214 
    215 	pass
    216