1 1.1 christos # frv testcase for cmqmachu $GRi,$GRj,$GRk,$CCi,$cond 2 1.1 christos # mach: all 3 1.1 christos 4 1.1 christos .include "../testutils.inc" 5 1.1 christos 6 1.1 christos start 7 1.1 christos 8 1.1 christos .global cmqmachu 9 1.1 christos cmqmachu: 10 1.1 christos set_spr_immed 0x1b1b,cccr 11 1.1 christos 12 1.1 christos set_spr_immed 0,msr0 13 1.1 christos set_accg_immed 0,accg0 14 1.1 christos set_acc_immed 0,acc0 15 1.1 christos set_accg_immed 0,accg1 16 1.1 christos set_acc_immed 0,acc1 17 1.1 christos set_accg_immed 0,accg2 18 1.1 christos set_acc_immed 0,acc2 19 1.1 christos set_accg_immed 0,accg3 20 1.1 christos set_acc_immed 0,acc3 21 1.1 christos set_fr_iimmed 3,2,fr8 ; multiply small numbers 22 1.1 christos set_fr_iimmed 2,3,fr10 23 1.1 christos set_fr_iimmed 1,2,fr9 ; multiply by 1 24 1.1 christos set_fr_iimmed 2,1,fr11 25 1.1 christos cmqmachu fr8,fr10,acc0,cc0,1 26 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 27 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 28 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 29 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 30 1.1 christos test_accg_immed 0,accg0 31 1.1 christos test_acc_immed 6,acc0 32 1.1 christos test_accg_immed 0,accg1 33 1.1 christos test_acc_immed 6,acc1 34 1.1 christos test_accg_immed 0,accg2 35 1.1 christos test_acc_immed 2,acc2 36 1.1 christos test_accg_immed 0,accg3 37 1.1 christos test_acc_immed 2,acc3 38 1.1 christos 39 1.1 christos set_fr_iimmed 0,2,fr8 ; multiply by 0 40 1.1 christos set_fr_iimmed 2,0,fr10 41 1.1 christos set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 42 1.1 christos set_fr_iimmed 2,0x3fff,fr11 43 1.1 christos cmqmachu fr8,fr10,acc0,cc0,1 44 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 45 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 46 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 47 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 48 1.1 christos test_accg_immed 0,accg0 49 1.1 christos test_acc_immed 6,acc0 50 1.1 christos test_accg_immed 0,accg1 51 1.1 christos test_acc_immed 6,acc1 52 1.1 christos test_accg_immed 0,accg2 53 1.1 christos test_acc_limmed 0x0000,0x8000,acc2 54 1.1 christos test_accg_immed 0,accg3 55 1.1 christos test_acc_limmed 0x0000,0x8000,acc3 56 1.1 christos 57 1.1 christos set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 58 1.1 christos set_fr_iimmed 2,0x4000,fr10 59 1.1 christos set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 60 1.1 christos set_fr_iimmed 2,0x8000,fr11 61 1.1 christos cmqmachu fr8,fr10,acc0,cc0,1 62 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 63 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 64 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 65 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 66 1.1 christos test_accg_immed 0,accg0 67 1.1 christos test_acc_limmed 0x0000,0x8006,acc0 68 1.1 christos test_accg_immed 0,accg1 69 1.1 christos test_acc_limmed 0x0000,0x8006,acc1 70 1.1 christos test_accg_immed 0,accg2 71 1.1 christos test_acc_immed 0x00018000,acc2 72 1.1 christos test_accg_immed 0,accg3 73 1.1 christos test_acc_immed 0x00018000,acc3 74 1.1 christos 75 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 76 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr10 77 1.1 christos set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 78 1.1 christos set_fr_iimmed 0x8000,0x8000,fr11 79 1.1 christos cmqmachu fr8,fr10,acc0,cc4,1 80 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 81 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 82 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 83 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 84 1.1 christos test_accg_immed 0,accg0 85 1.1 christos test_acc_immed 0x3fff8007,acc0 86 1.1 christos test_accg_immed 0,accg1 87 1.1 christos test_acc_immed 0x3fff8007,acc1 88 1.1 christos test_accg_immed 0,accg2 89 1.1 christos test_acc_limmed 0x4001,0x8000,acc2 90 1.1 christos test_accg_immed 0,accg3 91 1.1 christos test_acc_limmed 0x4001,0x8000,acc3 92 1.1 christos 93 1.1 christos set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 94 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 95 1.1 christos set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 96 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 97 1.1 christos cmqmachu fr8,fr10,acc0,cc4,1 98 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 99 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 100 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 101 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 102 1.1 christos test_accg_immed 1,accg0 103 1.1 christos test_acc_limmed 0x3ffd,0x8008,acc0 104 1.1 christos test_accg_immed 1,accg1 105 1.1 christos test_acc_limmed 0x3ffd,0x8008,acc1 106 1.1 christos test_accg_immed 1,accg2 107 1.1 christos test_acc_limmed 0x3fff,0x8001,acc2 108 1.1 christos test_accg_immed 1,accg3 109 1.1 christos test_acc_limmed 0x3fff,0x8001,acc3 110 1.1 christos 111 1.1 christos set_accg_immed 0xff,accg0 ; saturation 112 1.1 christos set_acc_immed 0xffffffff,acc0 113 1.1 christos set_accg_immed 0xff,accg1 114 1.1 christos set_acc_immed 0xffffffff,acc1 115 1.1 christos set_accg_immed 0xff,accg2 ; saturation 116 1.1 christos set_acc_immed 0xffffffff,acc2 117 1.1 christos set_accg_immed 0xff,accg3 118 1.1 christos set_acc_immed 0xffffffff,acc3 119 1.1 christos set_fr_iimmed 1,1,fr8 120 1.1 christos set_fr_iimmed 1,1,fr10 121 1.1 christos set_fr_iimmed 1,1,fr9 122 1.1 christos set_fr_iimmed 1,1,fr11 123 1.1 christos cmqmachu fr8,fr10,acc0,cc4,1 124 1.1 christos test_spr_bits 0x3c,2,0xf,msr0 ; msr0.sie is set 125 1.1 christos test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 126 1.1 christos test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 127 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 128 1.1 christos test_accg_immed 0xff,accg0 129 1.1 christos test_acc_limmed 0xffff,0xffff,acc0 130 1.1 christos test_accg_immed 0xff,accg1 131 1.1 christos test_acc_limmed 0xffff,0xffff,acc1 132 1.1 christos test_accg_immed 0xff,accg2 133 1.1 christos test_acc_limmed 0xffff,0xffff,acc2 134 1.1 christos test_accg_immed 0xff,accg3 135 1.1 christos test_acc_limmed 0xffff,0xffff,acc3 136 1.1 christos 137 1.1 christos set_fr_iimmed 0xffff,0x0000,fr8 138 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 139 1.1 christos set_fr_iimmed 0x0000,0xffff,fr9 140 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 141 1.1 christos cmqmachu fr8,fr10,acc0,cc4,1 142 1.1 christos test_spr_bits 0x3c,2,0x9,msr0 ; msr0.sie is set 143 1.1 christos test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 144 1.1 christos test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 145 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 146 1.1 christos test_accg_immed 0xff,accg0 147 1.1 christos test_acc_limmed 0xffff,0xffff,acc0 148 1.1 christos test_accg_immed 0xff,accg1 149 1.1 christos test_acc_limmed 0xffff,0xffff,acc1 150 1.1 christos test_accg_immed 0xff,accg2 151 1.1 christos test_acc_limmed 0xffff,0xffff,acc2 152 1.1 christos test_accg_immed 0xff,accg3 153 1.1 christos test_acc_limmed 0xffff,0xffff,acc3 154 1.1 christos 155 1.1 christos set_spr_immed 0,msr0 156 1.1 christos set_accg_immed 0,accg0 157 1.1 christos set_acc_immed 0,acc0 158 1.1 christos set_accg_immed 0,accg1 159 1.1 christos set_acc_immed 0,acc1 160 1.1 christos set_accg_immed 0,accg2 161 1.1 christos set_acc_immed 0,acc2 162 1.1 christos set_accg_immed 0,accg3 163 1.1 christos set_acc_immed 0,acc3 164 1.1 christos set_fr_iimmed 3,2,fr8 ; multiply small numbers 165 1.1 christos set_fr_iimmed 2,3,fr10 166 1.1 christos set_fr_iimmed 1,2,fr9 ; multiply by 1 167 1.1 christos set_fr_iimmed 2,1,fr11 168 1.1 christos cmqmachu fr8,fr10,acc0,cc1,0 169 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 170 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 171 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 172 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 173 1.1 christos test_accg_immed 0,accg0 174 1.1 christos test_acc_immed 6,acc0 175 1.1 christos test_accg_immed 0,accg1 176 1.1 christos test_acc_immed 6,acc1 177 1.1 christos test_accg_immed 0,accg2 178 1.1 christos test_acc_immed 2,acc2 179 1.1 christos test_accg_immed 0,accg3 180 1.1 christos test_acc_immed 2,acc3 181 1.1 christos 182 1.1 christos set_fr_iimmed 0,2,fr8 ; multiply by 0 183 1.1 christos set_fr_iimmed 2,0,fr10 184 1.1 christos set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 185 1.1 christos set_fr_iimmed 2,0x3fff,fr11 186 1.1 christos cmqmachu fr8,fr10,acc0,cc1,0 187 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 188 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 189 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 190 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 191 1.1 christos test_accg_immed 0,accg0 192 1.1 christos test_acc_immed 6,acc0 193 1.1 christos test_accg_immed 0,accg1 194 1.1 christos test_acc_immed 6,acc1 195 1.1 christos test_accg_immed 0,accg2 196 1.1 christos test_acc_limmed 0x0000,0x8000,acc2 197 1.1 christos test_accg_immed 0,accg3 198 1.1 christos test_acc_limmed 0x0000,0x8000,acc3 199 1.1 christos 200 1.1 christos set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 201 1.1 christos set_fr_iimmed 2,0x4000,fr10 202 1.1 christos set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 203 1.1 christos set_fr_iimmed 2,0x8000,fr11 204 1.1 christos cmqmachu fr8,fr10,acc0,cc1,0 205 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 206 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 207 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 208 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 209 1.1 christos test_accg_immed 0,accg0 210 1.1 christos test_acc_limmed 0x0000,0x8006,acc0 211 1.1 christos test_accg_immed 0,accg1 212 1.1 christos test_acc_limmed 0x0000,0x8006,acc1 213 1.1 christos test_accg_immed 0,accg2 214 1.1 christos test_acc_immed 0x00018000,acc2 215 1.1 christos test_accg_immed 0,accg3 216 1.1 christos test_acc_immed 0x00018000,acc3 217 1.1 christos 218 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 219 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr10 220 1.1 christos set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 221 1.1 christos set_fr_iimmed 0x8000,0x8000,fr11 222 1.1 christos cmqmachu fr8,fr10,acc0,cc5,0 223 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 224 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 225 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 226 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 227 1.1 christos test_accg_immed 0,accg0 228 1.1 christos test_acc_immed 0x3fff8007,acc0 229 1.1 christos test_accg_immed 0,accg1 230 1.1 christos test_acc_immed 0x3fff8007,acc1 231 1.1 christos test_accg_immed 0,accg2 232 1.1 christos test_acc_limmed 0x4001,0x8000,acc2 233 1.1 christos test_accg_immed 0,accg3 234 1.1 christos test_acc_limmed 0x4001,0x8000,acc3 235 1.1 christos 236 1.1 christos set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 237 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 238 1.1 christos set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 239 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 240 1.1 christos cmqmachu fr8,fr10,acc0,cc5,0 241 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 242 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 243 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 244 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 245 1.1 christos test_accg_immed 1,accg0 246 1.1 christos test_acc_limmed 0x3ffd,0x8008,acc0 247 1.1 christos test_accg_immed 1,accg1 248 1.1 christos test_acc_limmed 0x3ffd,0x8008,acc1 249 1.1 christos test_accg_immed 1,accg2 250 1.1 christos test_acc_limmed 0x3fff,0x8001,acc2 251 1.1 christos test_accg_immed 1,accg3 252 1.1 christos test_acc_limmed 0x3fff,0x8001,acc3 253 1.1 christos 254 1.1 christos set_accg_immed 0xff,accg0 ; saturation 255 1.1 christos set_acc_immed 0xffffffff,acc0 256 1.1 christos set_accg_immed 0xff,accg1 257 1.1 christos set_acc_immed 0xffffffff,acc1 258 1.1 christos set_accg_immed 0xff,accg2 ; saturation 259 1.1 christos set_acc_immed 0xffffffff,acc2 260 1.1 christos set_accg_immed 0xff,accg3 261 1.1 christos set_acc_immed 0xffffffff,acc3 262 1.1 christos set_fr_iimmed 1,1,fr8 263 1.1 christos set_fr_iimmed 1,1,fr10 264 1.1 christos set_fr_iimmed 1,1,fr9 265 1.1 christos set_fr_iimmed 1,1,fr11 266 1.1 christos cmqmachu fr8,fr10,acc0,cc5,0 267 1.1 christos test_spr_bits 0x3c,2,0xf,msr0 ; msr0.sie is set 268 1.1 christos test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 269 1.1 christos test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 270 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 271 1.1 christos test_accg_immed 0xff,accg0 272 1.1 christos test_acc_limmed 0xffff,0xffff,acc0 273 1.1 christos test_accg_immed 0xff,accg1 274 1.1 christos test_acc_limmed 0xffff,0xffff,acc1 275 1.1 christos test_accg_immed 0xff,accg2 276 1.1 christos test_acc_limmed 0xffff,0xffff,acc2 277 1.1 christos test_accg_immed 0xff,accg3 278 1.1 christos test_acc_limmed 0xffff,0xffff,acc3 279 1.1 christos 280 1.1 christos set_fr_iimmed 0xffff,0x0000,fr8 281 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 282 1.1 christos set_fr_iimmed 0x0000,0xffff,fr9 283 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 284 1.1 christos cmqmachu fr8,fr10,acc0,cc5,0 285 1.1 christos test_spr_bits 0x3c,2,0x9,msr0 ; msr0.sie is set 286 1.1 christos test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 287 1.1 christos test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 288 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 289 1.1 christos test_accg_immed 0xff,accg0 290 1.1 christos test_acc_limmed 0xffff,0xffff,acc0 291 1.1 christos test_accg_immed 0xff,accg1 292 1.1 christos test_acc_limmed 0xffff,0xffff,acc1 293 1.1 christos test_accg_immed 0xff,accg2 294 1.1 christos test_acc_limmed 0xffff,0xffff,acc2 295 1.1 christos test_accg_immed 0xff,accg3 296 1.1 christos test_acc_limmed 0xffff,0xffff,acc3 297 1.1 christos 298 1.1 christos set_spr_immed 0,msr0 299 1.1 christos set_accg_immed 0x00000011,accg0 300 1.1 christos set_acc_immed 0x11111111,acc0 301 1.1 christos set_accg_immed 0x00000022,accg1 302 1.1 christos set_acc_immed 0x22222222,acc1 303 1.1 christos set_accg_immed 0x00000033,accg2 304 1.1 christos set_acc_immed 0x33333333,acc2 305 1.1 christos set_accg_immed 0x00000044,accg3 306 1.1 christos set_acc_immed 0x44444444,acc3 307 1.1 christos set_fr_iimmed 3,2,fr8 ; multiply small numbers 308 1.1 christos set_fr_iimmed 2,3,fr10 309 1.1 christos set_fr_iimmed 1,2,fr9 ; multiply by 1 310 1.1 christos set_fr_iimmed 2,1,fr11 311 1.1 christos cmqmachu fr8,fr10,acc0,cc0,0 312 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 313 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 314 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 315 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 316 1.1 christos test_accg_immed 0x00000011,accg0 317 1.1 christos test_acc_immed 0x11111111,acc0 318 1.1 christos test_accg_immed 0x00000022,accg1 319 1.1 christos test_acc_immed 0x22222222,acc1 320 1.1 christos test_accg_immed 0x00000033,accg2 321 1.1 christos test_acc_immed 0x33333333,acc2 322 1.1 christos test_accg_immed 0x00000044,accg3 323 1.1 christos test_acc_immed 0x44444444,acc3 324 1.1 christos 325 1.1 christos set_fr_iimmed 0,2,fr8 ; multiply by 0 326 1.1 christos set_fr_iimmed 2,0,fr10 327 1.1 christos set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 328 1.1 christos set_fr_iimmed 2,0x3fff,fr11 329 1.1 christos cmqmachu fr8,fr10,acc0,cc0,0 330 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 331 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 332 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 333 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 334 1.1 christos test_accg_immed 0x00000011,accg0 335 1.1 christos test_acc_immed 0x11111111,acc0 336 1.1 christos test_accg_immed 0x00000022,accg1 337 1.1 christos test_acc_immed 0x22222222,acc1 338 1.1 christos test_accg_immed 0x00000033,accg2 339 1.1 christos test_acc_immed 0x33333333,acc2 340 1.1 christos test_accg_immed 0x00000044,accg3 341 1.1 christos test_acc_immed 0x44444444,acc3 342 1.1 christos 343 1.1 christos set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 344 1.1 christos set_fr_iimmed 2,0x4000,fr10 345 1.1 christos set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 346 1.1 christos set_fr_iimmed 2,0x8000,fr11 347 1.1 christos cmqmachu fr8,fr10,acc0,cc0,0 348 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 349 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 350 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 351 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 352 1.1 christos test_accg_immed 0x00000011,accg0 353 1.1 christos test_acc_immed 0x11111111,acc0 354 1.1 christos test_accg_immed 0x00000022,accg1 355 1.1 christos test_acc_immed 0x22222222,acc1 356 1.1 christos test_accg_immed 0x00000033,accg2 357 1.1 christos test_acc_immed 0x33333333,acc2 358 1.1 christos test_accg_immed 0x00000044,accg3 359 1.1 christos test_acc_immed 0x44444444,acc3 360 1.1 christos 361 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 362 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr10 363 1.1 christos set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 364 1.1 christos set_fr_iimmed 0x8000,0x8000,fr11 365 1.1 christos cmqmachu fr8,fr10,acc0,cc4,0 366 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 367 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 368 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 369 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 370 1.1 christos test_accg_immed 0x00000011,accg0 371 1.1 christos test_acc_immed 0x11111111,acc0 372 1.1 christos test_accg_immed 0x00000022,accg1 373 1.1 christos test_acc_immed 0x22222222,acc1 374 1.1 christos test_accg_immed 0x00000033,accg2 375 1.1 christos test_acc_immed 0x33333333,acc2 376 1.1 christos test_accg_immed 0x00000044,accg3 377 1.1 christos test_acc_immed 0x44444444,acc3 378 1.1 christos 379 1.1 christos set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 380 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 381 1.1 christos set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 382 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 383 1.1 christos cmqmachu fr8,fr10,acc0,cc4,0 384 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 385 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 386 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 387 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 388 1.1 christos test_accg_immed 0x00000011,accg0 389 1.1 christos test_acc_immed 0x11111111,acc0 390 1.1 christos test_accg_immed 0x00000022,accg1 391 1.1 christos test_acc_immed 0x22222222,acc1 392 1.1 christos test_accg_immed 0x00000033,accg2 393 1.1 christos test_acc_immed 0x33333333,acc2 394 1.1 christos test_accg_immed 0x00000044,accg3 395 1.1 christos test_acc_immed 0x44444444,acc3 396 1.1 christos 397 1.1 christos set_accg_immed 0xff,accg0 ; saturation 398 1.1 christos set_acc_immed 0xffffffff,acc0 399 1.1 christos set_accg_immed 0xff,accg1 400 1.1 christos set_acc_immed 0xffffffff,acc1 401 1.1 christos set_accg_immed 0xff,accg2 ; saturation 402 1.1 christos set_acc_immed 0xffffffff,acc2 403 1.1 christos set_accg_immed 0xff,accg3 404 1.1 christos set_acc_immed 0xffffffff,acc3 405 1.1 christos set_fr_iimmed 1,1,fr8 406 1.1 christos set_fr_iimmed 1,1,fr10 407 1.1 christos set_fr_iimmed 1,1,fr9 408 1.1 christos set_fr_iimmed 1,1,fr11 409 1.1 christos cmqmachu fr8,fr10,acc0,cc4,0 410 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 411 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 412 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 413 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 414 1.1 christos test_accg_immed 0xff,accg0 ; saturation 415 1.1 christos test_acc_immed 0xffffffff,acc0 416 1.1 christos test_accg_immed 0xff,accg1 417 1.1 christos test_acc_immed 0xffffffff,acc1 418 1.1 christos test_accg_immed 0xff,accg2 ; saturation 419 1.1 christos test_acc_immed 0xffffffff,acc2 420 1.1 christos test_accg_immed 0xff,accg3 421 1.1 christos test_acc_immed 0xffffffff,acc3 422 1.1 christos 423 1.1 christos set_fr_iimmed 0xffff,0x0000,fr8 424 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 425 1.1 christos set_fr_iimmed 0x0000,0xffff,fr9 426 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 427 1.1 christos cmqmachu fr8,fr10,acc0,cc4,0 428 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 429 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 430 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 431 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 432 1.1 christos test_accg_immed 0xff,accg0 ; saturation 433 1.1 christos test_acc_immed 0xffffffff,acc0 434 1.1 christos test_accg_immed 0xff,accg1 435 1.1 christos test_acc_immed 0xffffffff,acc1 436 1.1 christos test_accg_immed 0xff,accg2 ; saturation 437 1.1 christos test_acc_immed 0xffffffff,acc2 438 1.1 christos test_accg_immed 0xff,accg3 439 1.1 christos test_acc_immed 0xffffffff,acc3 440 1.1 christos 441 1.1 christos set_spr_immed 0,msr0 442 1.1 christos set_accg_immed 0x00000011,accg0 443 1.1 christos set_acc_immed 0x11111111,acc0 444 1.1 christos set_accg_immed 0x00000022,accg1 445 1.1 christos set_acc_immed 0x22222222,acc1 446 1.1 christos set_accg_immed 0x00000033,accg2 447 1.1 christos set_acc_immed 0x33333333,acc2 448 1.1 christos set_accg_immed 0x00000044,accg3 449 1.1 christos set_acc_immed 0x44444444,acc3 450 1.1 christos set_fr_iimmed 3,2,fr8 ; multiply small numbers 451 1.1 christos set_fr_iimmed 2,3,fr10 452 1.1 christos set_fr_iimmed 1,2,fr9 ; multiply by 1 453 1.1 christos set_fr_iimmed 2,1,fr11 454 1.1 christos cmqmachu fr8,fr10,acc0,cc1,1 455 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 456 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 457 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 458 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 459 1.1 christos test_accg_immed 0x00000011,accg0 460 1.1 christos test_acc_immed 0x11111111,acc0 461 1.1 christos test_accg_immed 0x00000022,accg1 462 1.1 christos test_acc_immed 0x22222222,acc1 463 1.1 christos test_accg_immed 0x00000033,accg2 464 1.1 christos test_acc_immed 0x33333333,acc2 465 1.1 christos test_accg_immed 0x00000044,accg3 466 1.1 christos test_acc_immed 0x44444444,acc3 467 1.1 christos 468 1.1 christos set_fr_iimmed 0,2,fr8 ; multiply by 0 469 1.1 christos set_fr_iimmed 2,0,fr10 470 1.1 christos set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 471 1.1 christos set_fr_iimmed 2,0x3fff,fr11 472 1.1 christos cmqmachu fr8,fr10,acc0,cc1,1 473 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 474 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 475 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 476 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 477 1.1 christos test_accg_immed 0x00000011,accg0 478 1.1 christos test_acc_immed 0x11111111,acc0 479 1.1 christos test_accg_immed 0x00000022,accg1 480 1.1 christos test_acc_immed 0x22222222,acc1 481 1.1 christos test_accg_immed 0x00000033,accg2 482 1.1 christos test_acc_immed 0x33333333,acc2 483 1.1 christos test_accg_immed 0x00000044,accg3 484 1.1 christos test_acc_immed 0x44444444,acc3 485 1.1 christos 486 1.1 christos set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 487 1.1 christos set_fr_iimmed 2,0x4000,fr10 488 1.1 christos set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 489 1.1 christos set_fr_iimmed 2,0x8000,fr11 490 1.1 christos cmqmachu fr8,fr10,acc0,cc1,1 491 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 492 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 493 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 494 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 495 1.1 christos test_accg_immed 0x00000011,accg0 496 1.1 christos test_acc_immed 0x11111111,acc0 497 1.1 christos test_accg_immed 0x00000022,accg1 498 1.1 christos test_acc_immed 0x22222222,acc1 499 1.1 christos test_accg_immed 0x00000033,accg2 500 1.1 christos test_acc_immed 0x33333333,acc2 501 1.1 christos test_accg_immed 0x00000044,accg3 502 1.1 christos test_acc_immed 0x44444444,acc3 503 1.1 christos 504 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 505 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr10 506 1.1 christos set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 507 1.1 christos set_fr_iimmed 0x8000,0x8000,fr11 508 1.1 christos cmqmachu fr8,fr10,acc0,cc5,1 509 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 510 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 511 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 512 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 513 1.1 christos test_accg_immed 0x00000011,accg0 514 1.1 christos test_acc_immed 0x11111111,acc0 515 1.1 christos test_accg_immed 0x00000022,accg1 516 1.1 christos test_acc_immed 0x22222222,acc1 517 1.1 christos test_accg_immed 0x00000033,accg2 518 1.1 christos test_acc_immed 0x33333333,acc2 519 1.1 christos test_accg_immed 0x00000044,accg3 520 1.1 christos test_acc_immed 0x44444444,acc3 521 1.1 christos 522 1.1 christos set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 523 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 524 1.1 christos set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 525 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 526 1.1 christos cmqmachu fr8,fr10,acc0,cc5,1 527 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 528 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 529 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 530 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 531 1.1 christos test_accg_immed 0x00000011,accg0 532 1.1 christos test_acc_immed 0x11111111,acc0 533 1.1 christos test_accg_immed 0x00000022,accg1 534 1.1 christos test_acc_immed 0x22222222,acc1 535 1.1 christos test_accg_immed 0x00000033,accg2 536 1.1 christos test_acc_immed 0x33333333,acc2 537 1.1 christos test_accg_immed 0x00000044,accg3 538 1.1 christos test_acc_immed 0x44444444,acc3 539 1.1 christos 540 1.1 christos set_accg_immed 0xff,accg0 ; saturation 541 1.1 christos set_acc_immed 0xffffffff,acc0 542 1.1 christos set_accg_immed 0xff,accg1 543 1.1 christos set_acc_immed 0xffffffff,acc1 544 1.1 christos set_accg_immed 0xff,accg2 ; saturation 545 1.1 christos set_acc_immed 0xffffffff,acc2 546 1.1 christos set_accg_immed 0xff,accg3 547 1.1 christos set_acc_immed 0xffffffff,acc3 548 1.1 christos set_fr_iimmed 1,1,fr8 549 1.1 christos set_fr_iimmed 1,1,fr10 550 1.1 christos set_fr_iimmed 1,1,fr9 551 1.1 christos set_fr_iimmed 1,1,fr11 552 1.1 christos cmqmachu fr8,fr10,acc0,cc5,1 553 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 554 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 555 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 556 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 557 1.1 christos test_accg_immed 0xff,accg0 ; saturation 558 1.1 christos test_acc_immed 0xffffffff,acc0 559 1.1 christos test_accg_immed 0xff,accg1 560 1.1 christos test_acc_immed 0xffffffff,acc1 561 1.1 christos test_accg_immed 0xff,accg2 ; saturation 562 1.1 christos test_acc_immed 0xffffffff,acc2 563 1.1 christos test_accg_immed 0xff,accg3 564 1.1 christos test_acc_immed 0xffffffff,acc3 565 1.1 christos 566 1.1 christos set_fr_iimmed 0xffff,0x0000,fr8 567 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 568 1.1 christos set_fr_iimmed 0x0000,0xffff,fr9 569 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 570 1.1 christos cmqmachu fr8,fr10,acc0,cc5,1 571 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 572 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 573 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 574 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 575 1.1 christos test_accg_immed 0xff,accg0 ; saturation 576 1.1 christos test_acc_immed 0xffffffff,acc0 577 1.1 christos test_accg_immed 0xff,accg1 578 1.1 christos test_acc_immed 0xffffffff,acc1 579 1.1 christos test_accg_immed 0xff,accg2 ; saturation 580 1.1 christos test_acc_immed 0xffffffff,acc2 581 1.1 christos test_accg_immed 0xff,accg3 582 1.1 christos test_acc_immed 0xffffffff,acc3 583 1.1 christos 584 1.1 christos set_spr_immed 0,msr0 585 1.1 christos set_accg_immed 0x00000011,accg0 586 1.1 christos set_acc_immed 0x11111111,acc0 587 1.1 christos set_accg_immed 0x00000022,accg1 588 1.1 christos set_acc_immed 0x22222222,acc1 589 1.1 christos set_accg_immed 0x00000033,accg2 590 1.1 christos set_acc_immed 0x33333333,acc2 591 1.1 christos set_accg_immed 0x00000044,accg3 592 1.1 christos set_acc_immed 0x44444444,acc3 593 1.1 christos set_fr_iimmed 3,2,fr8 ; multiply small numbers 594 1.1 christos set_fr_iimmed 2,3,fr10 595 1.1 christos set_fr_iimmed 1,2,fr9 ; multiply by 1 596 1.1 christos set_fr_iimmed 2,1,fr11 597 1.1 christos cmqmachu fr8,fr10,acc0,cc2,1 598 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 599 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 600 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 601 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 602 1.1 christos test_accg_immed 0x00000011,accg0 603 1.1 christos test_acc_immed 0x11111111,acc0 604 1.1 christos test_accg_immed 0x00000022,accg1 605 1.1 christos test_acc_immed 0x22222222,acc1 606 1.1 christos test_accg_immed 0x00000033,accg2 607 1.1 christos test_acc_immed 0x33333333,acc2 608 1.1 christos test_accg_immed 0x00000044,accg3 609 1.1 christos test_acc_immed 0x44444444,acc3 610 1.1 christos 611 1.1 christos set_fr_iimmed 0,2,fr8 ; multiply by 0 612 1.1 christos set_fr_iimmed 2,0,fr10 613 1.1 christos set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 614 1.1 christos set_fr_iimmed 2,0x3fff,fr11 615 1.1 christos cmqmachu fr8,fr10,acc0,cc2,0 616 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 617 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 618 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 619 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 620 1.1 christos test_accg_immed 0x00000011,accg0 621 1.1 christos test_acc_immed 0x11111111,acc0 622 1.1 christos test_accg_immed 0x00000022,accg1 623 1.1 christos test_acc_immed 0x22222222,acc1 624 1.1 christos test_accg_immed 0x00000033,accg2 625 1.1 christos test_acc_immed 0x33333333,acc2 626 1.1 christos test_accg_immed 0x00000044,accg3 627 1.1 christos test_acc_immed 0x44444444,acc3 628 1.1 christos 629 1.1 christos set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 630 1.1 christos set_fr_iimmed 2,0x4000,fr10 631 1.1 christos set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 632 1.1 christos set_fr_iimmed 2,0x8000,fr11 633 1.1 christos cmqmachu fr8,fr10,acc0,cc2,1 634 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 635 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 636 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 637 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 638 1.1 christos test_accg_immed 0x00000011,accg0 639 1.1 christos test_acc_immed 0x11111111,acc0 640 1.1 christos test_accg_immed 0x00000022,accg1 641 1.1 christos test_acc_immed 0x22222222,acc1 642 1.1 christos test_accg_immed 0x00000033,accg2 643 1.1 christos test_acc_immed 0x33333333,acc2 644 1.1 christos test_accg_immed 0x00000044,accg3 645 1.1 christos test_acc_immed 0x44444444,acc3 646 1.1 christos 647 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 648 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr10 649 1.1 christos set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 650 1.1 christos set_fr_iimmed 0x8000,0x8000,fr11 651 1.1 christos cmqmachu fr8,fr10,acc0,cc6,0 652 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 653 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 654 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 655 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 656 1.1 christos test_accg_immed 0x00000011,accg0 657 1.1 christos test_acc_immed 0x11111111,acc0 658 1.1 christos test_accg_immed 0x00000022,accg1 659 1.1 christos test_acc_immed 0x22222222,acc1 660 1.1 christos test_accg_immed 0x00000033,accg2 661 1.1 christos test_acc_immed 0x33333333,acc2 662 1.1 christos test_accg_immed 0x00000044,accg3 663 1.1 christos test_acc_immed 0x44444444,acc3 664 1.1 christos 665 1.1 christos set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 666 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 667 1.1 christos set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 668 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 669 1.1 christos cmqmachu fr8,fr10,acc0,cc6,1 670 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 671 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 672 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 673 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 674 1.1 christos test_accg_immed 0x00000011,accg0 675 1.1 christos test_acc_immed 0x11111111,acc0 676 1.1 christos test_accg_immed 0x00000022,accg1 677 1.1 christos test_acc_immed 0x22222222,acc1 678 1.1 christos test_accg_immed 0x00000033,accg2 679 1.1 christos test_acc_immed 0x33333333,acc2 680 1.1 christos test_accg_immed 0x00000044,accg3 681 1.1 christos test_acc_immed 0x44444444,acc3 682 1.1 christos 683 1.1 christos set_accg_immed 0xff,accg0 ; saturation 684 1.1 christos set_acc_immed 0xffffffff,acc0 685 1.1 christos set_accg_immed 0xff,accg1 686 1.1 christos set_acc_immed 0xffffffff,acc1 687 1.1 christos set_accg_immed 0xff,accg2 ; saturation 688 1.1 christos set_acc_immed 0xffffffff,acc2 689 1.1 christos set_accg_immed 0xff,accg3 690 1.1 christos set_acc_immed 0xffffffff,acc3 691 1.1 christos set_fr_iimmed 1,1,fr8 692 1.1 christos set_fr_iimmed 1,1,fr10 693 1.1 christos set_fr_iimmed 1,1,fr9 694 1.1 christos set_fr_iimmed 1,1,fr11 695 1.1 christos cmqmachu fr8,fr10,acc0,cc6,0 696 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 697 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 698 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 699 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 700 1.1 christos test_accg_immed 0xff,accg0 ; saturation 701 1.1 christos test_acc_immed 0xffffffff,acc0 702 1.1 christos test_accg_immed 0xff,accg1 703 1.1 christos test_acc_immed 0xffffffff,acc1 704 1.1 christos test_accg_immed 0xff,accg2 ; saturation 705 1.1 christos test_acc_immed 0xffffffff,acc2 706 1.1 christos test_accg_immed 0xff,accg3 707 1.1 christos test_acc_immed 0xffffffff,acc3 708 1.1 christos 709 1.1 christos set_fr_iimmed 0xffff,0x0000,fr8 710 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 711 1.1 christos set_fr_iimmed 0x0000,0xffff,fr9 712 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 713 1.1 christos cmqmachu fr8,fr10,acc0,cc6,1 714 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 715 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 716 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 717 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 718 1.1 christos test_accg_immed 0xff,accg0 ; saturation 719 1.1 christos test_acc_immed 0xffffffff,acc0 720 1.1 christos test_accg_immed 0xff,accg1 721 1.1 christos test_acc_immed 0xffffffff,acc1 722 1.1 christos test_accg_immed 0xff,accg2 ; saturation 723 1.1 christos test_acc_immed 0xffffffff,acc2 724 1.1 christos test_accg_immed 0xff,accg3 725 1.1 christos test_acc_immed 0xffffffff,acc3 726 1.1 christos ; 727 1.1 christos set_spr_immed 0,msr0 728 1.1 christos set_accg_immed 0x00000011,accg0 729 1.1 christos set_acc_immed 0x11111111,acc0 730 1.1 christos set_accg_immed 0x00000022,accg1 731 1.1 christos set_acc_immed 0x22222222,acc1 732 1.1 christos set_accg_immed 0x00000033,accg2 733 1.1 christos set_acc_immed 0x33333333,acc2 734 1.1 christos set_accg_immed 0x00000044,accg3 735 1.1 christos set_acc_immed 0x44444444,acc3 736 1.1 christos set_fr_iimmed 3,2,fr8 ; multiply small numbers 737 1.1 christos set_fr_iimmed 2,3,fr10 738 1.1 christos set_fr_iimmed 1,2,fr9 ; multiply by 1 739 1.1 christos set_fr_iimmed 2,1,fr11 740 1.1 christos cmqmachu fr8,fr10,acc0,cc3,1 741 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 742 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 743 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 744 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 745 1.1 christos test_accg_immed 0x00000011,accg0 746 1.1 christos test_acc_immed 0x11111111,acc0 747 1.1 christos test_accg_immed 0x00000022,accg1 748 1.1 christos test_acc_immed 0x22222222,acc1 749 1.1 christos test_accg_immed 0x00000033,accg2 750 1.1 christos test_acc_immed 0x33333333,acc2 751 1.1 christos test_accg_immed 0x00000044,accg3 752 1.1 christos test_acc_immed 0x44444444,acc3 753 1.1 christos 754 1.1 christos set_fr_iimmed 0,2,fr8 ; multiply by 0 755 1.1 christos set_fr_iimmed 2,0,fr10 756 1.1 christos set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 757 1.1 christos set_fr_iimmed 2,0x3fff,fr11 758 1.1 christos cmqmachu fr8,fr10,acc0,cc3,0 759 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 760 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 761 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 762 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 763 1.1 christos test_accg_immed 0x00000011,accg0 764 1.1 christos test_acc_immed 0x11111111,acc0 765 1.1 christos test_accg_immed 0x00000022,accg1 766 1.1 christos test_acc_immed 0x22222222,acc1 767 1.1 christos test_accg_immed 0x00000033,accg2 768 1.1 christos test_acc_immed 0x33333333,acc2 769 1.1 christos test_accg_immed 0x00000044,accg3 770 1.1 christos test_acc_immed 0x44444444,acc3 771 1.1 christos 772 1.1 christos set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 773 1.1 christos set_fr_iimmed 2,0x4000,fr10 774 1.1 christos set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 775 1.1 christos set_fr_iimmed 2,0x8000,fr11 776 1.1 christos cmqmachu fr8,fr10,acc0,cc3,1 777 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 778 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 779 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 780 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 781 1.1 christos test_accg_immed 0x00000011,accg0 782 1.1 christos test_acc_immed 0x11111111,acc0 783 1.1 christos test_accg_immed 0x00000022,accg1 784 1.1 christos test_acc_immed 0x22222222,acc1 785 1.1 christos test_accg_immed 0x00000033,accg2 786 1.1 christos test_acc_immed 0x33333333,acc2 787 1.1 christos test_accg_immed 0x00000044,accg3 788 1.1 christos test_acc_immed 0x44444444,acc3 789 1.1 christos 790 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 791 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr10 792 1.1 christos set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 793 1.1 christos set_fr_iimmed 0x8000,0x8000,fr11 794 1.1 christos cmqmachu fr8,fr10,acc0,cc7,0 795 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 796 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 797 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 798 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 799 1.1 christos test_accg_immed 0x00000011,accg0 800 1.1 christos test_acc_immed 0x11111111,acc0 801 1.1 christos test_accg_immed 0x00000022,accg1 802 1.1 christos test_acc_immed 0x22222222,acc1 803 1.1 christos test_accg_immed 0x00000033,accg2 804 1.1 christos test_acc_immed 0x33333333,acc2 805 1.1 christos test_accg_immed 0x00000044,accg3 806 1.1 christos test_acc_immed 0x44444444,acc3 807 1.1 christos 808 1.1 christos set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 809 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 810 1.1 christos set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 811 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 812 1.1 christos cmqmachu fr8,fr10,acc0,cc7,1 813 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 814 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 815 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 816 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 817 1.1 christos test_accg_immed 0x00000011,accg0 818 1.1 christos test_acc_immed 0x11111111,acc0 819 1.1 christos test_accg_immed 0x00000022,accg1 820 1.1 christos test_acc_immed 0x22222222,acc1 821 1.1 christos test_accg_immed 0x00000033,accg2 822 1.1 christos test_acc_immed 0x33333333,acc2 823 1.1 christos test_accg_immed 0x00000044,accg3 824 1.1 christos test_acc_immed 0x44444444,acc3 825 1.1 christos 826 1.1 christos set_accg_immed 0xff,accg0 ; saturation 827 1.1 christos set_acc_immed 0xffffffff,acc0 828 1.1 christos set_accg_immed 0xff,accg1 829 1.1 christos set_acc_immed 0xffffffff,acc1 830 1.1 christos set_accg_immed 0xff,accg2 ; saturation 831 1.1 christos set_acc_immed 0xffffffff,acc2 832 1.1 christos set_accg_immed 0xff,accg3 833 1.1 christos set_acc_immed 0xffffffff,acc3 834 1.1 christos set_fr_iimmed 1,1,fr8 835 1.1 christos set_fr_iimmed 1,1,fr10 836 1.1 christos set_fr_iimmed 1,1,fr9 837 1.1 christos set_fr_iimmed 1,1,fr11 838 1.1 christos cmqmachu fr8,fr10,acc0,cc7,0 839 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 840 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 841 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 842 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 843 1.1 christos test_accg_immed 0xff,accg0 ; saturation 844 1.1 christos test_acc_immed 0xffffffff,acc0 845 1.1 christos test_accg_immed 0xff,accg1 846 1.1 christos test_acc_immed 0xffffffff,acc1 847 1.1 christos test_accg_immed 0xff,accg2 ; saturation 848 1.1 christos test_acc_immed 0xffffffff,acc2 849 1.1 christos test_accg_immed 0xff,accg3 850 1.1 christos test_acc_immed 0xffffffff,acc3 851 1.1 christos 852 1.1 christos set_fr_iimmed 0xffff,0x0000,fr8 853 1.1 christos set_fr_iimmed 0xffff,0xffff,fr10 854 1.1 christos set_fr_iimmed 0x0000,0xffff,fr9 855 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 856 1.1 christos cmqmachu fr8,fr10,acc0,cc7,1 857 1.1 christos test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 858 1.1 christos test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 859 1.1 christos test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 860 1.1 christos test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 861 1.1 christos test_accg_immed 0xff,accg0 ; saturation 862 1.1 christos test_acc_immed 0xffffffff,acc0 863 1.1 christos test_accg_immed 0xff,accg1 864 1.1 christos test_acc_immed 0xffffffff,acc1 865 1.1 christos test_accg_immed 0xff,accg2 ; saturation 866 1.1 christos test_acc_immed 0xffffffff,acc2 867 1.1 christos test_accg_immed 0xff,accg3 868 1.1 christos test_acc_immed 0xffffffff,acc3 869 1.1 christos 870 1.1 christos pass 871