1 1.1 christos # frv testcase for csmul $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 csmul 9 1.1 christos csmul: 10 1.1 christos set_spr_immed 0x1b1b,cccr 11 1.1 christos 12 1.1 christos ; Positive operands 13 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 14 1.1 christos set_gr_immed 2,gr8 15 1.1 christos csmul gr7,gr8,gr8,cc4,1 16 1.1 christos test_gr_immed 0,gr8 17 1.1 christos test_gr_immed 6,gr9 18 1.1 christos 19 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 20 1.1 christos set_gr_immed 2,gr8 21 1.1 christos csmul gr7,gr8,gr8,cc4,1 22 1.1 christos test_gr_immed 0,gr8 23 1.1 christos test_gr_immed 2,gr9 24 1.1 christos 25 1.1 christos set_gr_immed 2,gr7 ; multiply by 1 26 1.1 christos set_gr_immed 1,gr8 27 1.1 christos csmul gr7,gr8,gr8,cc4,1 28 1.1 christos test_gr_immed 0,gr8 29 1.1 christos test_gr_immed 2,gr9 30 1.1 christos 31 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 32 1.1 christos set_gr_immed 2,gr8 33 1.1 christos csmul gr7,gr8,gr8,cc4,1 34 1.1 christos test_gr_immed 0,gr8 35 1.1 christos test_gr_immed 0,gr9 36 1.1 christos 37 1.1 christos set_gr_immed 2,gr7 ; multiply by 0 38 1.1 christos set_gr_immed 0,gr8 39 1.1 christos csmul gr7,gr8,gr8,cc4,1 40 1.1 christos test_gr_immed 0,gr8 41 1.1 christos test_gr_immed 0,gr9 42 1.1 christos 43 1.1 christos set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result 44 1.1 christos set_gr_immed 2,gr8 45 1.1 christos csmul gr7,gr8,gr8,cc4,1 46 1.1 christos test_gr_immed 0,gr8 47 1.1 christos test_gr_limmed 0x7fff,0xfffe,gr9 48 1.1 christos 49 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 50 1.1 christos set_gr_immed 2,gr8 51 1.1 christos csmul gr7,gr8,gr8,cc4,1 52 1.1 christos test_gr_immed 0,gr8 53 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 54 1.1 christos 55 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 56 1.1 christos set_gr_immed 4,gr8 57 1.1 christos csmul gr7,gr8,gr8,cc4,1 58 1.1 christos test_gr_immed 1,gr8 59 1.1 christos test_gr_limmed 0x0000,0x0000,gr9 60 1.1 christos 61 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result 62 1.1 christos set_gr_limmed 0x7fff,0xffff,gr8 63 1.1 christos csmul gr7,gr8,gr8,cc4,1 64 1.1 christos test_gr_limmed 0x3fff,0xffff,gr8 65 1.1 christos test_gr_immed 0x00000001,gr9 66 1.1 christos 67 1.1 christos ; Mixed operands 68 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 69 1.1 christos set_gr_immed 2,gr8 70 1.1 christos csmul gr7,gr8,gr8,cc4,1 71 1.1 christos test_gr_immed -1,gr8 72 1.1 christos test_gr_immed -6,gr9 73 1.1 christos 74 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 75 1.1 christos set_gr_immed -2,gr8 76 1.1 christos csmul gr7,gr8,gr8,cc4,1 77 1.1 christos test_gr_immed -1,gr8 78 1.1 christos test_gr_immed -6,gr9 79 1.1 christos 80 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 81 1.1 christos set_gr_immed -2,gr8 82 1.1 christos csmul gr7,gr8,gr8,cc4,1 83 1.1 christos test_gr_immed -1,gr8 84 1.1 christos test_gr_immed -2,gr9 85 1.1 christos 86 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 87 1.1 christos set_gr_immed 1,gr8 88 1.1 christos csmul gr7,gr8,gr8,cc4,1 89 1.1 christos test_gr_immed -1,gr8 90 1.1 christos test_gr_immed -2,gr9 91 1.1 christos 92 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 93 1.1 christos set_gr_immed -2,gr8 94 1.1 christos csmul gr7,gr8,gr8,cc4,1 95 1.1 christos test_gr_immed 0,gr8 96 1.1 christos test_gr_immed 0,gr9 97 1.1 christos 98 1.1 christos set_gr_immed -2,gr7 ; multiply by 0 99 1.1 christos set_gr_immed 0,gr8 100 1.1 christos csmul gr7,gr8,gr8,cc4,1 101 1.1 christos test_gr_immed 0,gr8 102 1.1 christos test_gr_immed 0,gr9 103 1.1 christos 104 1.1 christos set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result 105 1.1 christos set_gr_immed -2,gr8 106 1.1 christos csmul gr7,gr8,gr8,cc4,1 107 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 108 1.1 christos test_gr_limmed 0xbfff,0xfffe,gr9 109 1.1 christos 110 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 111 1.1 christos set_gr_immed -2,gr8 112 1.1 christos csmul gr7,gr8,gr8,cc4,1 113 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 114 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 115 1.1 christos 116 1.1 christos set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result 117 1.1 christos set_gr_immed -2,gr8 118 1.1 christos csmul gr7,gr8,gr8,cc4,1 119 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 120 1.1 christos test_gr_limmed 0x7fff,0xfffe,gr9 121 1.1 christos 122 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 123 1.1 christos set_gr_immed -4,gr8 124 1.1 christos csmul gr7,gr8,gr8,cc4,1 125 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 126 1.1 christos test_gr_limmed 0x0000,0x0000,gr9 127 1.1 christos 128 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result 129 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 130 1.1 christos csmul gr7,gr8,gr8,cc4,1 131 1.1 christos test_gr_limmed 0xc000,0x0000,gr8 132 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 133 1.1 christos 134 1.1 christos ; Negative operands 135 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 136 1.1 christos set_gr_immed -2,gr8 137 1.1 christos csmul gr7,gr8,gr8,cc4,1 138 1.1 christos test_gr_immed 0,gr8 139 1.1 christos test_gr_immed 6,gr9 140 1.1 christos 141 1.1 christos set_gr_immed -1,gr7 ; multiply by 1 142 1.1 christos set_gr_immed -2,gr8 143 1.1 christos csmul gr7,gr8,gr8,cc4,1 144 1.1 christos test_gr_immed 0,gr8 145 1.1 christos test_gr_immed 2,gr9 146 1.1 christos 147 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 148 1.1 christos set_gr_immed -1,gr8 149 1.1 christos csmul gr7,gr8,gr8,cc4,1 150 1.1 christos test_gr_immed 0,gr8 151 1.1 christos test_gr_immed 2,gr9 152 1.1 christos 153 1.1 christos set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result 154 1.1 christos set_gr_immed -2,gr8 155 1.1 christos csmul gr7,gr8,gr8,cc4,1 156 1.1 christos test_gr_immed 0,gr8 157 1.1 christos test_gr_limmed 0x7fff,0xfffe,gr9 158 1.1 christos 159 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result 160 1.1 christos set_gr_immed -2,gr8 161 1.1 christos csmul gr7,gr8,gr8,cc4,1 162 1.1 christos test_gr_immed 0,gr8 163 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 164 1.1 christos 165 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result 166 1.1 christos set_gr_immed -4,gr8 167 1.1 christos csmul gr7,gr8,gr8,cc4,1 168 1.1 christos test_gr_immed 1,gr8 169 1.1 christos test_gr_immed 0x00000000,gr9 170 1.1 christos 171 1.1 christos set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result 172 1.1 christos set_gr_limmed 0x8000,0x0001,gr8 173 1.1 christos csmul gr7,gr8,gr8,cc4,1 174 1.1 christos test_gr_limmed 0x3fff,0xffff,gr8 175 1.1 christos test_gr_immed 0x00000001,gr9 176 1.1 christos 177 1.1 christos 178 1.1 christos set_gr_limmed 0x8000,0x0000,gr7 ; max positive result 179 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 180 1.1 christos csmul gr7,gr8,gr8,cc4,1 181 1.1 christos test_gr_limmed 0x4000,0x0000,gr8 182 1.1 christos test_gr_immed 0x00000000,gr9 183 1.1 christos 184 1.1 christos ; Positive operands 185 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 186 1.1 christos set_gr_immed 2,gr8 187 1.1 christos csmul gr7,gr8,gr8,cc5,0 188 1.1 christos test_gr_immed 0,gr8 189 1.1 christos test_gr_immed 6,gr9 190 1.1 christos 191 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 192 1.1 christos set_gr_immed 2,gr8 193 1.1 christos csmul gr7,gr8,gr8,cc5,0 194 1.1 christos test_gr_immed 0,gr8 195 1.1 christos test_gr_immed 2,gr9 196 1.1 christos 197 1.1 christos set_gr_immed 2,gr7 ; multiply by 1 198 1.1 christos set_gr_immed 1,gr8 199 1.1 christos csmul gr7,gr8,gr8,cc5,0 200 1.1 christos test_gr_immed 0,gr8 201 1.1 christos test_gr_immed 2,gr9 202 1.1 christos 203 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 204 1.1 christos set_gr_immed 2,gr8 205 1.1 christos csmul gr7,gr8,gr8,cc5,0 206 1.1 christos test_gr_immed 0,gr8 207 1.1 christos test_gr_immed 0,gr9 208 1.1 christos 209 1.1 christos set_gr_immed 2,gr7 ; multiply by 0 210 1.1 christos set_gr_immed 0,gr8 211 1.1 christos csmul gr7,gr8,gr8,cc5,0 212 1.1 christos test_gr_immed 0,gr8 213 1.1 christos test_gr_immed 0,gr9 214 1.1 christos 215 1.1 christos set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result 216 1.1 christos set_gr_immed 2,gr8 217 1.1 christos csmul gr7,gr8,gr8,cc5,0 218 1.1 christos test_gr_immed 0,gr8 219 1.1 christos test_gr_limmed 0x7fff,0xfffe,gr9 220 1.1 christos 221 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 222 1.1 christos set_gr_immed 2,gr8 223 1.1 christos csmul gr7,gr8,gr8,cc5,0 224 1.1 christos test_gr_immed 0,gr8 225 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 226 1.1 christos 227 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 228 1.1 christos set_gr_immed 4,gr8 229 1.1 christos csmul gr7,gr8,gr8,cc5,0 230 1.1 christos test_gr_immed 1,gr8 231 1.1 christos test_gr_limmed 0x0000,0x0000,gr9 232 1.1 christos 233 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result 234 1.1 christos set_gr_limmed 0x7fff,0xffff,gr8 235 1.1 christos csmul gr7,gr8,gr8,cc5,0 236 1.1 christos test_gr_limmed 0x3fff,0xffff,gr8 237 1.1 christos test_gr_immed 0x00000001,gr9 238 1.1 christos 239 1.1 christos ; Mixed operands 240 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 241 1.1 christos set_gr_immed 2,gr8 242 1.1 christos csmul gr7,gr8,gr8,cc5,0 243 1.1 christos test_gr_immed -1,gr8 244 1.1 christos test_gr_immed -6,gr9 245 1.1 christos 246 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 247 1.1 christos set_gr_immed -2,gr8 248 1.1 christos csmul gr7,gr8,gr8,cc5,0 249 1.1 christos test_gr_immed -1,gr8 250 1.1 christos test_gr_immed -6,gr9 251 1.1 christos 252 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 253 1.1 christos set_gr_immed -2,gr8 254 1.1 christos csmul gr7,gr8,gr8,cc5,0 255 1.1 christos test_gr_immed -1,gr8 256 1.1 christos test_gr_immed -2,gr9 257 1.1 christos 258 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 259 1.1 christos set_gr_immed 1,gr8 260 1.1 christos csmul gr7,gr8,gr8,cc5,0 261 1.1 christos test_gr_immed -1,gr8 262 1.1 christos test_gr_immed -2,gr9 263 1.1 christos 264 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 265 1.1 christos set_gr_immed -2,gr8 266 1.1 christos csmul gr7,gr8,gr8,cc5,0 267 1.1 christos test_gr_immed 0,gr8 268 1.1 christos test_gr_immed 0,gr9 269 1.1 christos 270 1.1 christos set_gr_immed -2,gr7 ; multiply by 0 271 1.1 christos set_gr_immed 0,gr8 272 1.1 christos csmul gr7,gr8,gr8,cc5,0 273 1.1 christos test_gr_immed 0,gr8 274 1.1 christos test_gr_immed 0,gr9 275 1.1 christos 276 1.1 christos set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result 277 1.1 christos set_gr_immed -2,gr8 278 1.1 christos csmul gr7,gr8,gr8,cc5,0 279 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 280 1.1 christos test_gr_limmed 0xbfff,0xfffe,gr9 281 1.1 christos 282 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 283 1.1 christos set_gr_immed -2,gr8 284 1.1 christos csmul gr7,gr8,gr8,cc5,0 285 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 286 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 287 1.1 christos 288 1.1 christos set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result 289 1.1 christos set_gr_immed -2,gr8 290 1.1 christos csmul gr7,gr8,gr8,cc5,0 291 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 292 1.1 christos test_gr_limmed 0x7fff,0xfffe,gr9 293 1.1 christos 294 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 295 1.1 christos set_gr_immed -4,gr8 296 1.1 christos csmul gr7,gr8,gr8,cc5,0 297 1.1 christos test_gr_limmed 0xffff,0xffff,gr8 298 1.1 christos test_gr_limmed 0x0000,0x0000,gr9 299 1.1 christos 300 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result 301 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 302 1.1 christos csmul gr7,gr8,gr8,cc5,0 303 1.1 christos test_gr_limmed 0xc000,0x0000,gr8 304 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 305 1.1 christos 306 1.1 christos ; Negative operands 307 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 308 1.1 christos set_gr_immed -2,gr8 309 1.1 christos csmul gr7,gr8,gr8,cc5,0 310 1.1 christos test_gr_immed 0,gr8 311 1.1 christos test_gr_immed 6,gr9 312 1.1 christos 313 1.1 christos set_gr_immed -1,gr7 ; multiply by 1 314 1.1 christos set_gr_immed -2,gr8 315 1.1 christos csmul gr7,gr8,gr8,cc5,0 316 1.1 christos test_gr_immed 0,gr8 317 1.1 christos test_gr_immed 2,gr9 318 1.1 christos 319 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 320 1.1 christos set_gr_immed -1,gr8 321 1.1 christos csmul gr7,gr8,gr8,cc5,0 322 1.1 christos test_gr_immed 0,gr8 323 1.1 christos test_gr_immed 2,gr9 324 1.1 christos 325 1.1 christos set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result 326 1.1 christos set_gr_immed -2,gr8 327 1.1 christos csmul gr7,gr8,gr8,cc5,0 328 1.1 christos test_gr_immed 0,gr8 329 1.1 christos test_gr_limmed 0x7fff,0xfffe,gr9 330 1.1 christos 331 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result 332 1.1 christos set_gr_immed -2,gr8 333 1.1 christos csmul gr7,gr8,gr8,cc5,0 334 1.1 christos test_gr_immed 0,gr8 335 1.1 christos test_gr_limmed 0x8000,0x0000,gr9 336 1.1 christos 337 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result 338 1.1 christos set_gr_immed -4,gr8 339 1.1 christos csmul gr7,gr8,gr8,cc5,0 340 1.1 christos test_gr_immed 1,gr8 341 1.1 christos test_gr_immed 0x00000000,gr9 342 1.1 christos 343 1.1 christos set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result 344 1.1 christos set_gr_limmed 0x8000,0x0001,gr8 345 1.1 christos csmul gr7,gr8,gr8,cc5,0 346 1.1 christos test_gr_limmed 0x3fff,0xffff,gr8 347 1.1 christos test_gr_immed 0x00000001,gr9 348 1.1 christos 349 1.1 christos 350 1.1 christos set_gr_limmed 0x8000,0x0000,gr7 ; max positive result 351 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 352 1.1 christos csmul gr7,gr8,gr8,cc5,0 353 1.1 christos test_gr_limmed 0x4000,0x0000,gr8 354 1.1 christos test_gr_immed 0x00000000,gr9 355 1.1 christos 356 1.1 christos ; Positive operands 357 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 358 1.1 christos set_gr_immed 2,gr8 359 1.1 christos csmul gr7,gr8,gr8,cc4,0 360 1.1 christos test_gr_immed 2,gr8 361 1.1 christos test_gr_immed 0,gr9 362 1.1 christos 363 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 364 1.1 christos set_gr_immed 2,gr8 365 1.1 christos csmul gr7,gr8,gr8,cc4,0 366 1.1 christos test_gr_immed 2,gr8 367 1.1 christos test_gr_immed 0,gr9 368 1.1 christos 369 1.1 christos set_gr_immed 2,gr7 ; multiply by 1 370 1.1 christos set_gr_immed 1,gr8 371 1.1 christos csmul gr7,gr8,gr8,cc4,0 372 1.1 christos test_gr_immed 1,gr8 373 1.1 christos test_gr_immed 0,gr9 374 1.1 christos 375 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 376 1.1 christos set_gr_immed 2,gr8 377 1.1 christos csmul gr7,gr8,gr8,cc4,0 378 1.1 christos test_gr_immed 2,gr8 379 1.1 christos test_gr_immed 0,gr9 380 1.1 christos 381 1.1 christos set_gr_immed 2,gr7 ; multiply by 0 382 1.1 christos set_gr_immed 0,gr8 383 1.1 christos csmul gr7,gr8,gr8,cc4,0 384 1.1 christos test_gr_immed 0,gr8 385 1.1 christos test_gr_immed 0,gr9 386 1.1 christos 387 1.1 christos set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result 388 1.1 christos set_gr_immed 2,gr8 389 1.1 christos csmul gr7,gr8,gr8,cc4,0 390 1.1 christos test_gr_immed 2,gr8 391 1.1 christos test_gr_immed 0,gr9 392 1.1 christos 393 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 394 1.1 christos set_gr_immed 2,gr8 395 1.1 christos csmul gr7,gr8,gr8,cc4,0 396 1.1 christos test_gr_immed 2,gr8 397 1.1 christos test_gr_immed 0,gr9 398 1.1 christos 399 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 400 1.1 christos set_gr_immed 4,gr8 401 1.1 christos csmul gr7,gr8,gr8,cc4,0 402 1.1 christos test_gr_immed 4,gr8 403 1.1 christos test_gr_immed 0,gr9 404 1.1 christos 405 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result 406 1.1 christos set_gr_limmed 0x7fff,0xffff,gr8 407 1.1 christos csmul gr7,gr8,gr8,cc4,0 408 1.1 christos test_gr_limmed 0x7fff,0xffff,gr8 409 1.1 christos test_gr_immed 0,gr9 410 1.1 christos 411 1.1 christos ; Mixed operands 412 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 413 1.1 christos set_gr_immed 2,gr8 414 1.1 christos csmul gr7,gr8,gr8,cc4,0 415 1.1 christos test_gr_immed 2,gr8 416 1.1 christos test_gr_immed 0,gr9 417 1.1 christos 418 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 419 1.1 christos set_gr_immed -2,gr8 420 1.1 christos csmul gr7,gr8,gr8,cc4,0 421 1.1 christos test_gr_immed -2,gr8 422 1.1 christos test_gr_immed 0,gr9 423 1.1 christos 424 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 425 1.1 christos set_gr_immed -2,gr8 426 1.1 christos csmul gr7,gr8,gr8,cc4,0 427 1.1 christos test_gr_immed -2,gr8 428 1.1 christos test_gr_immed 0,gr9 429 1.1 christos 430 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 431 1.1 christos set_gr_immed 1,gr8 432 1.1 christos csmul gr7,gr8,gr8,cc4,0 433 1.1 christos test_gr_immed 1,gr8 434 1.1 christos test_gr_immed 0,gr9 435 1.1 christos 436 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 437 1.1 christos set_gr_immed -2,gr8 438 1.1 christos csmul gr7,gr8,gr8,cc4,0 439 1.1 christos test_gr_immed -2,gr8 440 1.1 christos test_gr_immed 0,gr9 441 1.1 christos 442 1.1 christos set_gr_immed -2,gr7 ; multiply by 0 443 1.1 christos set_gr_immed 0,gr8 444 1.1 christos csmul gr7,gr8,gr8,cc4,0 445 1.1 christos test_gr_immed 0,gr8 446 1.1 christos test_gr_immed 0,gr9 447 1.1 christos 448 1.1 christos set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result 449 1.1 christos set_gr_immed -2,gr8 450 1.1 christos csmul gr7,gr8,gr8,cc4,0 451 1.1 christos test_gr_immed -2,gr8 452 1.1 christos test_gr_immed 0,gr9 453 1.1 christos 454 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 455 1.1 christos set_gr_immed -2,gr8 456 1.1 christos csmul gr7,gr8,gr8,cc4,0 457 1.1 christos test_gr_immed -2,gr8 458 1.1 christos test_gr_immed 0,gr9 459 1.1 christos 460 1.1 christos set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result 461 1.1 christos set_gr_immed -2,gr8 462 1.1 christos csmul gr7,gr8,gr8,cc4,0 463 1.1 christos test_gr_immed -2,gr8 464 1.1 christos test_gr_immed 0,gr9 465 1.1 christos 466 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 467 1.1 christos set_gr_immed -4,gr8 468 1.1 christos csmul gr7,gr8,gr8,cc4,0 469 1.1 christos test_gr_immed -4,gr8 470 1.1 christos test_gr_immed 0,gr9 471 1.1 christos 472 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result 473 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 474 1.1 christos csmul gr7,gr8,gr8,cc4,0 475 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 476 1.1 christos test_gr_immed 0,gr9 477 1.1 christos 478 1.1 christos ; Negative operands 479 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 480 1.1 christos set_gr_immed -2,gr8 481 1.1 christos csmul gr7,gr8,gr8,cc4,0 482 1.1 christos test_gr_immed -2,gr8 483 1.1 christos test_gr_immed 0,gr9 484 1.1 christos 485 1.1 christos set_gr_immed -1,gr7 ; multiply by 1 486 1.1 christos set_gr_immed -2,gr8 487 1.1 christos csmul gr7,gr8,gr8,cc4,0 488 1.1 christos test_gr_immed -2,gr8 489 1.1 christos test_gr_immed 0,gr9 490 1.1 christos 491 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 492 1.1 christos set_gr_immed -1,gr8 493 1.1 christos csmul gr7,gr8,gr8,cc4,0 494 1.1 christos test_gr_immed -1,gr8 495 1.1 christos test_gr_immed 0,gr9 496 1.1 christos 497 1.1 christos set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result 498 1.1 christos set_gr_immed -2,gr8 499 1.1 christos csmul gr7,gr8,gr8,cc4,0 500 1.1 christos test_gr_immed -2,gr8 501 1.1 christos test_gr_immed 0,gr9 502 1.1 christos 503 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result 504 1.1 christos set_gr_immed -2,gr8 505 1.1 christos csmul gr7,gr8,gr8,cc4,0 506 1.1 christos test_gr_immed -2,gr8 507 1.1 christos test_gr_immed 0,gr9 508 1.1 christos 509 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result 510 1.1 christos set_gr_immed -4,gr8 511 1.1 christos csmul gr7,gr8,gr8,cc4,0 512 1.1 christos test_gr_immed -4,gr8 513 1.1 christos test_gr_immed 0,gr9 514 1.1 christos 515 1.1 christos set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result 516 1.1 christos set_gr_limmed 0x8000,0x0001,gr8 517 1.1 christos csmul gr7,gr8,gr8,cc4,0 518 1.1 christos test_gr_limmed 0x8000,0x0001,gr8 519 1.1 christos test_gr_immed 0,gr9 520 1.1 christos 521 1.1 christos 522 1.1 christos set_gr_limmed 0x8000,0x0000,gr7 ; max positive result 523 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 524 1.1 christos csmul gr7,gr8,gr8,cc4,0 525 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 526 1.1 christos test_gr_immed 0,gr9 527 1.1 christos 528 1.1 christos ; Positive operands 529 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 530 1.1 christos set_gr_immed 2,gr8 531 1.1 christos csmul gr7,gr8,gr8,cc5,1 532 1.1 christos test_gr_immed 2,gr8 533 1.1 christos test_gr_immed 0,gr9 534 1.1 christos 535 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 536 1.1 christos set_gr_immed 2,gr8 537 1.1 christos csmul gr7,gr8,gr8,cc5,1 538 1.1 christos test_gr_immed 2,gr8 539 1.1 christos test_gr_immed 0,gr9 540 1.1 christos 541 1.1 christos set_gr_immed 2,gr7 ; multiply by 1 542 1.1 christos set_gr_immed 1,gr8 543 1.1 christos csmul gr7,gr8,gr8,cc5,1 544 1.1 christos test_gr_immed 1,gr8 545 1.1 christos test_gr_immed 0,gr9 546 1.1 christos 547 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 548 1.1 christos set_gr_immed 2,gr8 549 1.1 christos csmul gr7,gr8,gr8,cc5,1 550 1.1 christos test_gr_immed 2,gr8 551 1.1 christos test_gr_immed 0,gr9 552 1.1 christos 553 1.1 christos set_gr_immed 2,gr7 ; multiply by 0 554 1.1 christos set_gr_immed 0,gr8 555 1.1 christos csmul gr7,gr8,gr8,cc5,1 556 1.1 christos test_gr_immed 0,gr8 557 1.1 christos test_gr_immed 0,gr9 558 1.1 christos 559 1.1 christos set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result 560 1.1 christos set_gr_immed 2,gr8 561 1.1 christos csmul gr7,gr8,gr8,cc5,1 562 1.1 christos test_gr_immed 2,gr8 563 1.1 christos test_gr_immed 0,gr9 564 1.1 christos 565 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 566 1.1 christos set_gr_immed 2,gr8 567 1.1 christos csmul gr7,gr8,gr8,cc5,1 568 1.1 christos test_gr_immed 2,gr8 569 1.1 christos test_gr_immed 0,gr9 570 1.1 christos 571 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 572 1.1 christos set_gr_immed 4,gr8 573 1.1 christos csmul gr7,gr8,gr8,cc5,1 574 1.1 christos test_gr_immed 4,gr8 575 1.1 christos test_gr_immed 0,gr9 576 1.1 christos 577 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result 578 1.1 christos set_gr_limmed 0x7fff,0xffff,gr8 579 1.1 christos csmul gr7,gr8,gr8,cc5,1 580 1.1 christos test_gr_limmed 0x7fff,0xffff,gr8 581 1.1 christos test_gr_immed 0,gr9 582 1.1 christos 583 1.1 christos ; Mixed operands 584 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 585 1.1 christos set_gr_immed 2,gr8 586 1.1 christos csmul gr7,gr8,gr8,cc5,1 587 1.1 christos test_gr_immed 2,gr8 588 1.1 christos test_gr_immed 0,gr9 589 1.1 christos 590 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 591 1.1 christos set_gr_immed -2,gr8 592 1.1 christos csmul gr7,gr8,gr8,cc5,1 593 1.1 christos test_gr_immed -2,gr8 594 1.1 christos test_gr_immed 0,gr9 595 1.1 christos 596 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 597 1.1 christos set_gr_immed -2,gr8 598 1.1 christos csmul gr7,gr8,gr8,cc5,1 599 1.1 christos test_gr_immed -2,gr8 600 1.1 christos test_gr_immed 0,gr9 601 1.1 christos 602 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 603 1.1 christos set_gr_immed 1,gr8 604 1.1 christos csmul gr7,gr8,gr8,cc5,1 605 1.1 christos test_gr_immed 1,gr8 606 1.1 christos test_gr_immed 0,gr9 607 1.1 christos 608 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 609 1.1 christos set_gr_immed -2,gr8 610 1.1 christos csmul gr7,gr8,gr8,cc5,1 611 1.1 christos test_gr_immed -2,gr8 612 1.1 christos test_gr_immed 0,gr9 613 1.1 christos 614 1.1 christos set_gr_immed -2,gr7 ; multiply by 0 615 1.1 christos set_gr_immed 0,gr8 616 1.1 christos csmul gr7,gr8,gr8,cc5,1 617 1.1 christos test_gr_immed 0,gr8 618 1.1 christos test_gr_immed 0,gr9 619 1.1 christos 620 1.1 christos set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result 621 1.1 christos set_gr_immed -2,gr8 622 1.1 christos csmul gr7,gr8,gr8,cc5,1 623 1.1 christos test_gr_immed -2,gr8 624 1.1 christos test_gr_immed 0,gr9 625 1.1 christos 626 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 627 1.1 christos set_gr_immed -2,gr8 628 1.1 christos csmul gr7,gr8,gr8,cc5,1 629 1.1 christos test_gr_immed -2,gr8 630 1.1 christos test_gr_immed 0,gr9 631 1.1 christos 632 1.1 christos set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result 633 1.1 christos set_gr_immed -2,gr8 634 1.1 christos csmul gr7,gr8,gr8,cc5,1 635 1.1 christos test_gr_immed -2,gr8 636 1.1 christos test_gr_immed 0,gr9 637 1.1 christos 638 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 639 1.1 christos set_gr_immed -4,gr8 640 1.1 christos csmul gr7,gr8,gr8,cc5,1 641 1.1 christos test_gr_immed -4,gr8 642 1.1 christos test_gr_immed 0,gr9 643 1.1 christos 644 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result 645 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 646 1.1 christos csmul gr7,gr8,gr8,cc5,1 647 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 648 1.1 christos test_gr_immed 0,gr9 649 1.1 christos 650 1.1 christos ; Negative operands 651 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 652 1.1 christos set_gr_immed -2,gr8 653 1.1 christos csmul gr7,gr8,gr8,cc5,1 654 1.1 christos test_gr_immed -2,gr8 655 1.1 christos test_gr_immed 0,gr9 656 1.1 christos 657 1.1 christos set_gr_immed -1,gr7 ; multiply by 1 658 1.1 christos set_gr_immed -2,gr8 659 1.1 christos csmul gr7,gr8,gr8,cc5,1 660 1.1 christos test_gr_immed -2,gr8 661 1.1 christos test_gr_immed 0,gr9 662 1.1 christos 663 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 664 1.1 christos set_gr_immed -1,gr8 665 1.1 christos csmul gr7,gr8,gr8,cc5,1 666 1.1 christos test_gr_immed -1,gr8 667 1.1 christos test_gr_immed 0,gr9 668 1.1 christos 669 1.1 christos set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result 670 1.1 christos set_gr_immed -2,gr8 671 1.1 christos csmul gr7,gr8,gr8,cc5,1 672 1.1 christos test_gr_immed -2,gr8 673 1.1 christos test_gr_immed 0,gr9 674 1.1 christos 675 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result 676 1.1 christos set_gr_immed -2,gr8 677 1.1 christos csmul gr7,gr8,gr8,cc5,1 678 1.1 christos test_gr_immed -2,gr8 679 1.1 christos test_gr_immed 0,gr9 680 1.1 christos 681 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result 682 1.1 christos set_gr_immed -4,gr8 683 1.1 christos csmul gr7,gr8,gr8,cc5,1 684 1.1 christos test_gr_immed -4,gr8 685 1.1 christos test_gr_immed 0,gr9 686 1.1 christos 687 1.1 christos set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result 688 1.1 christos set_gr_limmed 0x8000,0x0001,gr8 689 1.1 christos csmul gr7,gr8,gr8,cc5,1 690 1.1 christos test_gr_limmed 0x8000,0x0001,gr8 691 1.1 christos test_gr_immed 0,gr9 692 1.1 christos 693 1.1 christos 694 1.1 christos set_gr_limmed 0x8000,0x0000,gr7 ; max positive result 695 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 696 1.1 christos csmul gr7,gr8,gr8,cc5,1 697 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 698 1.1 christos test_gr_immed 0,gr9 699 1.1 christos 700 1.1 christos ; Positive operands 701 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 702 1.1 christos set_gr_immed 2,gr8 703 1.1 christos csmul gr7,gr8,gr8,cc6,0 704 1.1 christos test_gr_immed 2,gr8 705 1.1 christos test_gr_immed 0,gr9 706 1.1 christos 707 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 708 1.1 christos set_gr_immed 2,gr8 709 1.1 christos csmul gr7,gr8,gr8,cc6,0 710 1.1 christos test_gr_immed 2,gr8 711 1.1 christos test_gr_immed 0,gr9 712 1.1 christos 713 1.1 christos set_gr_immed 2,gr7 ; multiply by 1 714 1.1 christos set_gr_immed 1,gr8 715 1.1 christos csmul gr7,gr8,gr8,cc6,0 716 1.1 christos test_gr_immed 1,gr8 717 1.1 christos test_gr_immed 0,gr9 718 1.1 christos 719 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 720 1.1 christos set_gr_immed 2,gr8 721 1.1 christos csmul gr7,gr8,gr8,cc6,0 722 1.1 christos test_gr_immed 2,gr8 723 1.1 christos test_gr_immed 0,gr9 724 1.1 christos 725 1.1 christos set_gr_immed 2,gr7 ; multiply by 0 726 1.1 christos set_gr_immed 0,gr8 727 1.1 christos csmul gr7,gr8,gr8,cc6,0 728 1.1 christos test_gr_immed 0,gr8 729 1.1 christos test_gr_immed 0,gr9 730 1.1 christos 731 1.1 christos set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result 732 1.1 christos set_gr_immed 2,gr8 733 1.1 christos csmul gr7,gr8,gr8,cc6,0 734 1.1 christos test_gr_immed 2,gr8 735 1.1 christos test_gr_immed 0,gr9 736 1.1 christos 737 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 738 1.1 christos set_gr_immed 2,gr8 739 1.1 christos csmul gr7,gr8,gr8,cc6,0 740 1.1 christos test_gr_immed 2,gr8 741 1.1 christos test_gr_immed 0,gr9 742 1.1 christos 743 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 744 1.1 christos set_gr_immed 4,gr8 745 1.1 christos csmul gr7,gr8,gr8,cc6,0 746 1.1 christos test_gr_immed 4,gr8 747 1.1 christos test_gr_immed 0,gr9 748 1.1 christos 749 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result 750 1.1 christos set_gr_limmed 0x7fff,0xffff,gr8 751 1.1 christos csmul gr7,gr8,gr8,cc6,0 752 1.1 christos test_gr_limmed 0x7fff,0xffff,gr8 753 1.1 christos test_gr_immed 0,gr9 754 1.1 christos 755 1.1 christos ; Mixed operands 756 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 757 1.1 christos set_gr_immed 2,gr8 758 1.1 christos csmul gr7,gr8,gr8,cc6,0 759 1.1 christos test_gr_immed 2,gr8 760 1.1 christos test_gr_immed 0,gr9 761 1.1 christos 762 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 763 1.1 christos set_gr_immed -2,gr8 764 1.1 christos csmul gr7,gr8,gr8,cc6,0 765 1.1 christos test_gr_immed -2,gr8 766 1.1 christos test_gr_immed 0,gr9 767 1.1 christos 768 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 769 1.1 christos set_gr_immed -2,gr8 770 1.1 christos csmul gr7,gr8,gr8,cc6,0 771 1.1 christos test_gr_immed -2,gr8 772 1.1 christos test_gr_immed 0,gr9 773 1.1 christos 774 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 775 1.1 christos set_gr_immed 1,gr8 776 1.1 christos csmul gr7,gr8,gr8,cc6,0 777 1.1 christos test_gr_immed 1,gr8 778 1.1 christos test_gr_immed 0,gr9 779 1.1 christos 780 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 781 1.1 christos set_gr_immed -2,gr8 782 1.1 christos csmul gr7,gr8,gr8,cc6,0 783 1.1 christos test_gr_immed -2,gr8 784 1.1 christos test_gr_immed 0,gr9 785 1.1 christos 786 1.1 christos set_gr_immed -2,gr7 ; multiply by 0 787 1.1 christos set_gr_immed 0,gr8 788 1.1 christos csmul gr7,gr8,gr8,cc6,0 789 1.1 christos test_gr_immed 0,gr8 790 1.1 christos test_gr_immed 0,gr9 791 1.1 christos 792 1.1 christos set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result 793 1.1 christos set_gr_immed -2,gr8 794 1.1 christos csmul gr7,gr8,gr8,cc6,0 795 1.1 christos test_gr_immed -2,gr8 796 1.1 christos test_gr_immed 0,gr9 797 1.1 christos 798 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 799 1.1 christos set_gr_immed -2,gr8 800 1.1 christos csmul gr7,gr8,gr8,cc6,0 801 1.1 christos test_gr_immed -2,gr8 802 1.1 christos test_gr_immed 0,gr9 803 1.1 christos 804 1.1 christos set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result 805 1.1 christos set_gr_immed -2,gr8 806 1.1 christos csmul gr7,gr8,gr8,cc6,0 807 1.1 christos test_gr_immed -2,gr8 808 1.1 christos test_gr_immed 0,gr9 809 1.1 christos 810 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 811 1.1 christos set_gr_immed -4,gr8 812 1.1 christos csmul gr7,gr8,gr8,cc6,0 813 1.1 christos test_gr_immed -4,gr8 814 1.1 christos test_gr_immed 0,gr9 815 1.1 christos 816 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result 817 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 818 1.1 christos csmul gr7,gr8,gr8,cc6,0 819 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 820 1.1 christos test_gr_immed 0,gr9 821 1.1 christos 822 1.1 christos ; Negative operands 823 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 824 1.1 christos set_gr_immed -2,gr8 825 1.1 christos csmul gr7,gr8,gr8,cc6,0 826 1.1 christos test_gr_immed -2,gr8 827 1.1 christos test_gr_immed 0,gr9 828 1.1 christos 829 1.1 christos set_gr_immed -1,gr7 ; multiply by 1 830 1.1 christos set_gr_immed -2,gr8 831 1.1 christos csmul gr7,gr8,gr8,cc6,0 832 1.1 christos test_gr_immed -2,gr8 833 1.1 christos test_gr_immed 0,gr9 834 1.1 christos 835 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 836 1.1 christos set_gr_immed -1,gr8 837 1.1 christos csmul gr7,gr8,gr8,cc6,0 838 1.1 christos test_gr_immed -1,gr8 839 1.1 christos test_gr_immed 0,gr9 840 1.1 christos 841 1.1 christos set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result 842 1.1 christos set_gr_immed -2,gr8 843 1.1 christos csmul gr7,gr8,gr8,cc6,0 844 1.1 christos test_gr_immed -2,gr8 845 1.1 christos test_gr_immed 0,gr9 846 1.1 christos 847 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result 848 1.1 christos set_gr_immed -2,gr8 849 1.1 christos csmul gr7,gr8,gr8,cc6,0 850 1.1 christos test_gr_immed -2,gr8 851 1.1 christos test_gr_immed 0,gr9 852 1.1 christos 853 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result 854 1.1 christos set_gr_immed -4,gr8 855 1.1 christos csmul gr7,gr8,gr8,cc6,0 856 1.1 christos test_gr_immed -4,gr8 857 1.1 christos test_gr_immed 0,gr9 858 1.1 christos 859 1.1 christos set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result 860 1.1 christos set_gr_limmed 0x8000,0x0001,gr8 861 1.1 christos csmul gr7,gr8,gr8,cc6,0 862 1.1 christos test_gr_limmed 0x8000,0x0001,gr8 863 1.1 christos test_gr_immed 0,gr9 864 1.1 christos 865 1.1 christos 866 1.1 christos set_gr_limmed 0x8000,0x0000,gr7 ; max positive result 867 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 868 1.1 christos csmul gr7,gr8,gr8,cc6,0 869 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 870 1.1 christos test_gr_immed 0,gr9 871 1.1 christos 872 1.1 christos ; Positive operands 873 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 874 1.1 christos set_gr_immed 2,gr8 875 1.1 christos csmul gr7,gr8,gr8,cc7,1 876 1.1 christos test_gr_immed 2,gr8 877 1.1 christos test_gr_immed 0,gr9 878 1.1 christos 879 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 880 1.1 christos set_gr_immed 2,gr8 881 1.1 christos csmul gr7,gr8,gr8,cc7,1 882 1.1 christos test_gr_immed 2,gr8 883 1.1 christos test_gr_immed 0,gr9 884 1.1 christos 885 1.1 christos set_gr_immed 2,gr7 ; multiply by 1 886 1.1 christos set_gr_immed 1,gr8 887 1.1 christos csmul gr7,gr8,gr8,cc7,1 888 1.1 christos test_gr_immed 1,gr8 889 1.1 christos test_gr_immed 0,gr9 890 1.1 christos 891 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 892 1.1 christos set_gr_immed 2,gr8 893 1.1 christos csmul gr7,gr8,gr8,cc7,1 894 1.1 christos test_gr_immed 2,gr8 895 1.1 christos test_gr_immed 0,gr9 896 1.1 christos 897 1.1 christos set_gr_immed 2,gr7 ; multiply by 0 898 1.1 christos set_gr_immed 0,gr8 899 1.1 christos csmul gr7,gr8,gr8,cc7,1 900 1.1 christos test_gr_immed 0,gr8 901 1.1 christos test_gr_immed 0,gr9 902 1.1 christos 903 1.1 christos set_gr_limmed 0x3fff,0xffff,gr7 ; 31 bit result 904 1.1 christos set_gr_immed 2,gr8 905 1.1 christos csmul gr7,gr8,gr8,cc7,1 906 1.1 christos test_gr_immed 2,gr8 907 1.1 christos test_gr_immed 0,gr9 908 1.1 christos 909 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 910 1.1 christos set_gr_immed 2,gr8 911 1.1 christos csmul gr7,gr8,gr8,cc7,1 912 1.1 christos test_gr_immed 2,gr8 913 1.1 christos test_gr_immed 0,gr9 914 1.1 christos 915 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 916 1.1 christos set_gr_immed 4,gr8 917 1.1 christos csmul gr7,gr8,gr8,cc7,1 918 1.1 christos test_gr_immed 4,gr8 919 1.1 christos test_gr_immed 0,gr9 920 1.1 christos 921 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max positive result 922 1.1 christos set_gr_limmed 0x7fff,0xffff,gr8 923 1.1 christos csmul gr7,gr8,gr8,cc7,1 924 1.1 christos test_gr_limmed 0x7fff,0xffff,gr8 925 1.1 christos test_gr_immed 0,gr9 926 1.1 christos 927 1.1 christos ; Mixed operands 928 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 929 1.1 christos set_gr_immed 2,gr8 930 1.1 christos csmul gr7,gr8,gr8,cc7,1 931 1.1 christos test_gr_immed 2,gr8 932 1.1 christos test_gr_immed 0,gr9 933 1.1 christos 934 1.1 christos set_gr_immed 3,gr7 ; multiply small numbers 935 1.1 christos set_gr_immed -2,gr8 936 1.1 christos csmul gr7,gr8,gr8,cc7,1 937 1.1 christos test_gr_immed -2,gr8 938 1.1 christos test_gr_immed 0,gr9 939 1.1 christos 940 1.1 christos set_gr_immed 1,gr7 ; multiply by 1 941 1.1 christos set_gr_immed -2,gr8 942 1.1 christos csmul gr7,gr8,gr8,cc7,1 943 1.1 christos test_gr_immed -2,gr8 944 1.1 christos test_gr_immed 0,gr9 945 1.1 christos 946 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 947 1.1 christos set_gr_immed 1,gr8 948 1.1 christos csmul gr7,gr8,gr8,cc7,1 949 1.1 christos test_gr_immed 1,gr8 950 1.1 christos test_gr_immed 0,gr9 951 1.1 christos 952 1.1 christos set_gr_immed 0,gr7 ; multiply by 0 953 1.1 christos set_gr_immed -2,gr8 954 1.1 christos csmul gr7,gr8,gr8,cc7,1 955 1.1 christos test_gr_immed -2,gr8 956 1.1 christos test_gr_immed 0,gr9 957 1.1 christos 958 1.1 christos set_gr_immed -2,gr7 ; multiply by 0 959 1.1 christos set_gr_immed 0,gr8 960 1.1 christos csmul gr7,gr8,gr8,cc7,1 961 1.1 christos test_gr_immed 0,gr8 962 1.1 christos test_gr_immed 0,gr9 963 1.1 christos 964 1.1 christos set_gr_limmed 0x2000,0x0001,gr7 ; 31 bit result 965 1.1 christos set_gr_immed -2,gr8 966 1.1 christos csmul gr7,gr8,gr8,cc7,1 967 1.1 christos test_gr_immed -2,gr8 968 1.1 christos test_gr_immed 0,gr9 969 1.1 christos 970 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 32 bit result 971 1.1 christos set_gr_immed -2,gr8 972 1.1 christos csmul gr7,gr8,gr8,cc7,1 973 1.1 christos test_gr_immed -2,gr8 974 1.1 christos test_gr_immed 0,gr9 975 1.1 christos 976 1.1 christos set_gr_limmed 0x4000,0x0001,gr7 ; 32 bit result 977 1.1 christos set_gr_immed -2,gr8 978 1.1 christos csmul gr7,gr8,gr8,cc7,1 979 1.1 christos test_gr_immed -2,gr8 980 1.1 christos test_gr_immed 0,gr9 981 1.1 christos 982 1.1 christos set_gr_limmed 0x4000,0x0000,gr7 ; 33 bit result 983 1.1 christos set_gr_immed -4,gr8 984 1.1 christos csmul gr7,gr8,gr8,cc7,1 985 1.1 christos test_gr_immed -4,gr8 986 1.1 christos test_gr_immed 0,gr9 987 1.1 christos 988 1.1 christos set_gr_limmed 0x7fff,0xffff,gr7 ; max negative result 989 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 990 1.1 christos csmul gr7,gr8,gr8,cc7,1 991 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 992 1.1 christos test_gr_immed 0,gr9 993 1.1 christos 994 1.1 christos ; Negative operands 995 1.1 christos set_gr_immed -3,gr7 ; multiply small numbers 996 1.1 christos set_gr_immed -2,gr8 997 1.1 christos csmul gr7,gr8,gr8,cc7,1 998 1.1 christos test_gr_immed -2,gr8 999 1.1 christos test_gr_immed 0,gr9 1000 1.1 christos 1001 1.1 christos set_gr_immed -1,gr7 ; multiply by 1 1002 1.1 christos set_gr_immed -2,gr8 1003 1.1 christos csmul gr7,gr8,gr8,cc7,1 1004 1.1 christos test_gr_immed -2,gr8 1005 1.1 christos test_gr_immed 0,gr9 1006 1.1 christos 1007 1.1 christos set_gr_immed -2,gr7 ; multiply by 1 1008 1.1 christos set_gr_immed -1,gr8 1009 1.1 christos csmul gr7,gr8,gr8,cc7,1 1010 1.1 christos test_gr_immed -1,gr8 1011 1.1 christos test_gr_immed 0,gr9 1012 1.1 christos 1013 1.1 christos set_gr_limmed 0xc000,0x0001,gr7 ; 31 bit result 1014 1.1 christos set_gr_immed -2,gr8 1015 1.1 christos csmul gr7,gr8,gr8,cc7,1 1016 1.1 christos test_gr_immed -2,gr8 1017 1.1 christos test_gr_immed 0,gr9 1018 1.1 christos 1019 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 32 bit result 1020 1.1 christos set_gr_immed -2,gr8 1021 1.1 christos csmul gr7,gr8,gr8,cc7,1 1022 1.1 christos test_gr_immed -2,gr8 1023 1.1 christos test_gr_immed 0,gr9 1024 1.1 christos 1025 1.1 christos set_gr_limmed 0xc000,0x0000,gr7 ; 33 bit result 1026 1.1 christos set_gr_immed -4,gr8 1027 1.1 christos csmul gr7,gr8,gr8,cc7,1 1028 1.1 christos test_gr_immed -4,gr8 1029 1.1 christos test_gr_immed 0,gr9 1030 1.1 christos 1031 1.1 christos set_gr_limmed 0x8000,0x0001,gr7 ; almost max positive result 1032 1.1 christos set_gr_limmed 0x8000,0x0001,gr8 1033 1.1 christos csmul gr7,gr8,gr8,cc7,1 1034 1.1 christos test_gr_limmed 0x8000,0x0001,gr8 1035 1.1 christos test_gr_immed 0,gr9 1036 1.1 christos 1037 1.1 christos 1038 1.1 christos set_gr_limmed 0x8000,0x0000,gr7 ; max positive result 1039 1.1 christos set_gr_limmed 0x8000,0x0000,gr8 1040 1.1 christos csmul gr7,gr8,gr8,cc7,1 1041 1.1 christos test_gr_limmed 0x8000,0x0000,gr8 1042 1.1 christos test_gr_immed 0,gr9 1043 1.1 christos 1044 1.1 christos pass 1045