1# mach: bfin 2 3// Shift test program. 4// Test instructions 5// RL0 = CC = BXOR (A0 AND R1) << 1; 6// RL0 = CC = BXOR A0 AND R1; 7// A0 <<=1 (BXOR A0 AND A1 CC); 8// RL3 = CC = BXOR A0 AND A1 CC; 9 10.include "testutils.inc" 11 start 12 13 init_r_regs 0; 14 ASTAT = R0; 15 16// RL0 = CC = BXOR (A0 AND R1) << 1; 17 R0.L = 0x1000; 18 R0.H = 0x0000; 19 A0.w = R0; 20 R0.L = 0x0000; 21 A0.x = R0.L; 22 R1.L = 0xffff; 23 R1.H = 0xffff; 24 R2.L = CC = BXORSHIFT( A0 , R1 ); 25 R0 = A0.w; 26 DBGA ( R0.L , 0x2000 ); 27 DBGA ( R0.H , 0x0000 ); 28 R0.L = A0.x; 29 DBGA ( R0.L , 0x0000 ); 30 R0 = CC; 31 DBGA ( R0.L , 0x0001 ); 32 DBGA ( R0.H , 0x0000 ); 33 DBGA ( R2.L , 0x0001 ); 34 35 R0.L = 0x1000; 36 R0.H = 0x0001; 37 A0.w = R0; 38 R0.L = 0x0000; 39 A0.x = R0.L; 40 R1.L = 0xffff; 41 R1.H = 0xffff; 42 R2.L = CC = BXORSHIFT( A0 , R1 ); 43 R0 = A0.w; 44 DBGA ( R0.L , 0x2000 ); 45 DBGA ( R0.H , 0x0002 ); 46 R0.L = A0.x; 47 DBGA ( R0.L , 0x0000 ); 48 R0 = CC; 49 DBGA ( R0.L , 0x0000 ); 50 DBGA ( R0.H , 0x0000 ); 51 DBGA ( R2.L , 0x0000 ); 52 53 R0.L = 0xffff; 54 R0.H = 0xffff; 55 A0.w = R0; 56 R0.L = 0x00ff; 57 A0.x = R0.L; 58 R1.L = 0xffff; 59 R1.H = 0xffff; 60 R2.L = CC = BXORSHIFT( A0 , R1 ); 61 R0 = A0.w; 62 DBGA ( R0.L , 0xfffe ); 63 DBGA ( R0.H , 0xffff ); 64 R0.L = A0.x; 65 DBGA ( R0.L , 0xffff ); 66 R0 = CC; 67 DBGA ( R0.L , 0x0001 ); 68 DBGA ( R0.H , 0x0000 ); 69 DBGA ( R2.L , 0x0001 ); 70 71// no 72 R0.L = 0xffff; 73 R0.H = 0xffff; 74 A0.w = R0; 75 R0.L = 0x00ff; 76 A0.x = R0.L; 77 R1.L = 0xffff; 78 R1.H = 0xffff; 79 R2.L = CC = BXOR( A0 , R1 ); 80 R0 = A0.w; 81 DBGA ( R0.L , 0xffff ); 82 DBGA ( R0.H , 0xffff ); 83 R0.L = A0.x; 84 DBGA ( R0.L , 0xffff ); 85 R0 = CC; 86 DBGA ( R0.L , 0x0000 ); 87 DBGA ( R0.H , 0x0000 ); 88 DBGA ( R2.H , 0x0000 ); 89 90// A0 <<=1 (BXOR A0 AND A1 CC); 91 92 R0.L = 0x1000; 93 R0.H = 0x0000; 94 A0.w = R0; 95 R0.L = 0x0000; 96 A0.x = R0.L; 97 R0.L = 0xffff; 98 R0.H = 0xffff; 99 A1.w = R0; 100 R0.L = 0x00ff; 101 A1.x = R0.L; 102 R0.L = 0x0000; 103 R0.H = 0x0000; 104 CC = R0; 105 A0 = BXORSHIFT( A0 , A1, CC ); 106 R0 = A0.w; 107 DBGA ( R0.L , 0x2001 ); 108 DBGA ( R0.H , 0x0000 ); 109 R0.L = A0.x; 110 DBGA ( R0.L , 0x0000 ); 111 112 R0.L = 0x1000; 113 R0.H = 0x0000; 114 A0.w = R0; 115 R0.L = 0x0000; 116 A0.x = R0.L; 117 R0.L = 0x0fff; 118 R0.H = 0xffff; 119 A1.w = R0; 120 R0.L = 0x00ff; 121 A1.x = R0.L; 122 R0.L = 0x0000; 123 R0.H = 0x0000; 124 CC = R0; 125 A0 = BXORSHIFT( A0 , A1, CC ); 126 R0 = A0.w; 127 DBGA ( R0.L , 0x2000 ); 128 DBGA ( R0.H , 0x0000 ); 129 R0.L = A0.x; 130 DBGA ( R0.L , 0x0000 ); 131 132 R0.L = 0x1000; 133 R0.H = 0x0000; 134 A0.w = R0; 135 R0.L = 0x0000; 136 A0.x = R0.L; 137 R0.L = 0xffff; 138 R0.H = 0xffff; 139 A1.w = R0; 140 R0.L = 0x00ff; 141 A1.x = R0.L; 142 R0.L = 0x0001; 143 R0.H = 0x0000; 144 CC = R0; 145 A0 = BXORSHIFT( A0 , A1, CC ); 146 R0 = A0.w; 147 DBGA ( R0.L , 0x2000 ); 148 DBGA ( R0.H , 0x0000 ); 149 R0.L = A0.x; 150 DBGA ( R0.L , 0x0000 ); 151 152// no 153 154 R0.L = 0x1000; 155 R0.H = 0x0000; 156 A0.w = R0; 157 R0.L = 0x0000; 158 A0.x = R0.L; 159 R0.L = 0xffff; 160 R0.H = 0xffff; 161 A1.w = R0; 162 R0.L = 0x00ff; 163 A1.x = R0.L; 164 R0.L = 0x0000; 165 R0.H = 0x0000; 166 CC = R0; 167 R2.L = CC = BXOR( A0 , A1, CC ); 168 R0 = A0.w; 169 DBGA ( R0.L , 0x1000 ); 170 DBGA ( R0.H , 0x0000 ); 171 R0.L = A0.x; 172 DBGA ( R0.L , 0x0000 ); 173 DBGA ( R2.L , 0x0001 ); 174 R0 = CC; 175 DBGA ( R0.L , 0x0001 ); 176 177 pass 178