Home | History | Annotate | Line # | Download | only in bfin
      1 //  reg-based SHIFT test program.
      2 # mach: bfin
      3 
      4 .include "testutils.inc"
      5 	start
      6 
      7 
      8 //  Test FDEP with no sign extension
      9 
     10 	R0.L = 0xdead;
     11 	R0.H = 0x1234;
     12 	R1.L = 0x0c08;	// pos=12 len=8
     13 	R1.H = 0x00ff;
     14 	R7 = DEPOSIT( R0, R1 );
     15 	DBGA ( R7.L , 0xfead );
     16 	DBGA ( R7.H , 0x123f );
     17 
     18 	R0.L = 0xdead;
     19 	R0.H = 0x1234;
     20 	R1.L = 0x0c04;	// pos=12 len=4
     21 	R1.H = 0x00ff;
     22 	R7 = DEPOSIT( R0, R1 );
     23 	DBGA ( R7.L , 0xfead );
     24 	DBGA ( R7.H , 0x1234 );
     25 
     26 	R0.L = 0xdead;
     27 	R0.H = 0x1234;
     28 	R1.L = 0x0c05;	// pos=12 len=5
     29 	R1.H = 0x00ff;
     30 	R7 = DEPOSIT( R0, R1 );
     31 	DBGA ( R7.L , 0xfead );
     32 	DBGA ( R7.H , 0x1235 );
     33 
     34 	R0.L = 0xdead;
     35 	R0.H = 0x1234;
     36 	R1.L = 0x0010;	// pos=0 len=16
     37 	R1.H = 0xffff;
     38 	R7 = DEPOSIT( R0, R1 );
     39 	DBGA ( R7.L , 0xffff );
     40 	DBGA ( R7.H , 0x1234 );
     41 
     42 	R0.L = 0xdead;
     43 	R0.H = 0x1234;
     44 	R1.L = 0x0011;	// pos=0 len=17
     45 	R1.H = 0xffff;
     46 	R7 = DEPOSIT( R0, R1 );
     47 	DBGA ( R7.L , 0xffff );
     48 	DBGA ( R7.H , 0x1234 );
     49 
     50 	R0.L = 0xdead;
     51 	R0.H = 0x1234;
     52 	R1.L = 0x0114;	// pos=1 len=20
     53 	R1.H = 0xffff;
     54 	R7 = DEPOSIT( R0, R1 );
     55 	DBGA ( R7.L , 0xffff );
     56 	DBGA ( R7.H , 0x1235 );
     57 
     58 	R0.L = 0xdead;
     59 	R0.H = 0x1234;
     60 	R1.L = 0x001f;	// pos=0 len=31
     61 	R1.H = 0xffff;
     62 	R7 = DEPOSIT( R0, R1 );
     63 	DBGA ( R7.L , 0xffff );
     64 	DBGA ( R7.H , 0x1234 );
     65 
     66 	R0.L = 0xdead;
     67 	R0.H = 0x1234;
     68 	R1.L = 0x1c04;	// pos=28 len=4
     69 	R1.H = 0xffff;
     70 	R7 = DEPOSIT( R0, R1 );
     71 	DBGA ( R7.L , 0xdead );
     72 	DBGA ( R7.H , 0xf234 );
     73 
     74 	R0.L = 0xdead;
     75 	R0.H = 0x0234;
     76 	R1.L = 0x1d04;	// pos=29 len=4
     77 	R1.H = 0xffff;
     78 	R7 = DEPOSIT( R0, R1 );
     79 	DBGA ( R7.L , 0xdead );
     80 	DBGA ( R7.H , 0xe234 );
     81 
     82 	R0.L = 0xdead;
     83 	R0.H = 0x0234;
     84 	R1.L = 0x1f04;	// pos=31 len=4
     85 	R1.H = 0xffff;
     86 	R7 = DEPOSIT( R0, R1 );
     87 	DBGA ( R7.L , 0xdead );
     88 	DBGA ( R7.H , 0x8234 );
     89 
     90 	R0.L = 0xdead;
     91 	R0.H = 0x0234;
     92 	R1.L = 0x2004;	// pos=32 len=4, same as pos=0 len=4
     93 	R1.H = 0xffff;
     94 	R7 = DEPOSIT( R0, R1 );
     95 	DBGA ( R7.L , 0xdeaf );
     96 	DBGA ( R7.H , 0x0234 );
     97 
     98 //  Test FDEP with sign extension
     99 
    100 	R0.L = 0xdead;
    101 	R0.H = 0x1234;
    102 	R1.L = 0x0c08;	// pos=12 len=8
    103 	R1.H = 0x00ff;
    104 	R7 = DEPOSIT( R0, R1 ) (X);
    105 	DBGA ( R7.L , 0xfead );
    106 	DBGA ( R7.H , 0xffff );
    107 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    108 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
    109 
    110 	R0.L = 0xdead;
    111 	R0.H = 0x1234;
    112 	R1.L = 0x0c08;	// pos=12 len=8
    113 	R1.H = 0x007f;
    114 	R7 = DEPOSIT( R0, R1 ) (X);
    115 	DBGA ( R7.L , 0xfead );
    116 	DBGA ( R7.H , 0x0007 );
    117 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    118 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    119 
    120 	R0.L = 0xdea0;
    121 	R0.H = 0x1234;
    122 	R1.L = 0x0110;	// pos=1 len=16
    123 	R1.H = 0xffff;
    124 	R7 = DEPOSIT( R0, R1 ) (X);
    125 	DBGA ( R7.L , 0xfffe );
    126 	DBGA ( R7.H , 0xffff );
    127 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    128 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x1 );
    129 
    130 	R0.L = 0xdea0;
    131 	R0.H = 0x1234;
    132 	R1.L = 0x0101;	// pos=1 len=1
    133 	R1.H = 0xffff;
    134 	R7 = DEPOSIT( R0, R1 ) (X);
    135 	DBGA ( R7.L , 0xfffe );
    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 = 0xdea0;
    141 	R0.H = 0x1234;
    142 	R1.L = 0x0102;	// pos=1 len=2
    143 	R1.H = 0x0001;
    144 	R7 = DEPOSIT( R0, R1 ) (X);
    145 	DBGA ( R7.L , 0x0002 );
    146 	DBGA ( R7.H , 0x0000 );
    147 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    148 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    149 
    150 	R0.L = 0xdea0;
    151 	R0.H = 0x1234;
    152 	R1.L = 0x0002;	// pos=0 len=2
    153 	R1.H = 0x0001;
    154 	R7 = DEPOSIT( R0, R1 ) (X);
    155 	DBGA ( R7.L , 0x0001 );
    156 	DBGA ( R7.H , 0x0000 );
    157 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x0 );
    158 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    159 
    160 	R0.L = 0xdea0;
    161 	R0.H = 0x1234;
    162 	R1.L = 0x0000;	// pos=0 len=0
    163 	R1.H = 0x000f;
    164 	R7 = DEPOSIT( R0, R1 ) (X);
    165 	DBGA ( R7.L , 0x0000 );
    166 	DBGA ( R7.H , 0x0000 );
    167 	CC = AZ;	R7 = CC; DBGA ( R7.L , 0x1 );
    168 	CC = AN;	R7 = CC; DBGA ( R7.L , 0x0 );
    169 
    170 	pass
    171