1# Hitachi H8 testcase 'mova' 2# mach(): h8sx 3# as(h8300): --defsym sim_cpu=0 4# as(h8300h): --defsym sim_cpu=1 5# as(h8300s): --defsym sim_cpu=2 6# as(h8sx): --defsym sim_cpu=3 7# ld(h8300h): -m h8300helf 8# ld(h8300s): -m h8300self 9# ld(h8sx): -m h8300sxelf 10 11 .include "testutils.inc" 12 13 .data 14foo: .long 0x01010101 15 .long 0x10101010 16 .long 0x11111111 17 18 start 19 20movabl16_reg8: 21 set_grs_a5a5 22 set_ccr_zero 23 24 mova/b.l @(1:16, r2l.b), er3 25 26 test_cc_clear 27 test_gr_a5a5 0 ; Make sure other regs not affected 28 test_gr_a5a5 1 29 test_gr_a5a5 2 30 test_h_gr32 0xa6 er3 31 test_gr_a5a5 4 32 test_gr_a5a5 5 33 test_gr_a5a5 6 34 test_gr_a5a5 7 35 36movabl16_reg16: 37 set_grs_a5a5 38 set_ccr_zero 39 40 mova/b.l @(1:16, r2.w), er3 41 42 test_cc_clear 43 test_gr_a5a5 0 ; Make sure other regs not affected 44 test_gr_a5a5 1 45 test_gr_a5a5 2 46 test_h_gr32 0xa5a6 er3 47 test_gr_a5a5 4 48 test_gr_a5a5 5 49 test_gr_a5a5 6 50 test_gr_a5a5 7 51 52movabl32_reg8: 53 set_grs_a5a5 54 set_ccr_zero 55 56 mova/b.l @(1:32, r2l.b), er3 57 58 test_cc_clear 59 test_gr_a5a5 0 ; Make sure other regs not affected 60 test_gr_a5a5 1 61 test_gr_a5a5 2 62 test_h_gr32 0xa6 er3 63 test_gr_a5a5 4 64 test_gr_a5a5 5 65 test_gr_a5a5 6 66 test_gr_a5a5 7 67 68movabl32_reg16: 69 set_grs_a5a5 70 set_ccr_zero 71 72 mova/b.l @(1:32, r2.w), er3 73 74 test_cc_clear 75 test_gr_a5a5 0 ; Make sure other regs not affected 76 test_gr_a5a5 1 77 test_gr_a5a5 2 78 test_h_gr32 0xa5a6 er3 79 test_gr_a5a5 4 80 test_gr_a5a5 5 81 test_gr_a5a5 6 82 test_gr_a5a5 7 83 84movawl16_reg8: 85 set_grs_a5a5 86 set_ccr_zero 87 88 mova/w.l @(1:16, r2l.b), er3 89 90 test_cc_clear 91 test_gr_a5a5 0 ; Make sure other regs not affected 92 test_gr_a5a5 1 93 test_gr_a5a5 2 94 test_h_gr32 0x14b er3 95 test_gr_a5a5 4 96 test_gr_a5a5 5 97 test_gr_a5a5 6 98 test_gr_a5a5 7 99 100movawl16_reg16: 101 set_grs_a5a5 102 set_ccr_zero 103 104 mova/w.l @(1:16, r2.w), er3 105 106 test_cc_clear 107 test_gr_a5a5 0 ; Make sure other regs not affected 108 test_gr_a5a5 1 109 test_gr_a5a5 2 110 test_h_gr32 0x14b4b er3 111 test_gr_a5a5 4 112 test_gr_a5a5 5 113 test_gr_a5a5 6 114 test_gr_a5a5 7 115 116movawl32_reg8: 117 set_grs_a5a5 118 set_ccr_zero 119 120 mova/w.l @(1:32, r2l.b), er3 121 122 test_cc_clear 123 test_gr_a5a5 0 ; Make sure other regs not affected 124 test_gr_a5a5 1 125 test_gr_a5a5 2 126 test_h_gr32 0x14b er3 127 test_gr_a5a5 4 128 test_gr_a5a5 5 129 test_gr_a5a5 6 130 test_gr_a5a5 7 131 132movawl32_reg16: 133 set_grs_a5a5 134 set_ccr_zero 135 136 mova/w.l @(1:32, r2.w), er3 137 138 test_cc_clear 139 test_gr_a5a5 0 ; Make sure other regs not affected 140 test_gr_a5a5 1 141 test_gr_a5a5 2 142 test_h_gr32 0x14b4b er3 143 test_gr_a5a5 4 144 test_gr_a5a5 5 145 test_gr_a5a5 6 146 test_gr_a5a5 7 147 148movall16_reg8: 149 set_grs_a5a5 150 set_ccr_zero 151 152 mova/l.l @(1:16, r2l.b), er3 153 154 test_cc_clear 155 test_gr_a5a5 0 ; Make sure other regs not affected 156 test_gr_a5a5 1 157 test_gr_a5a5 2 158 test_h_gr32 0x295 er3 159 test_gr_a5a5 4 160 test_gr_a5a5 5 161 test_gr_a5a5 6 162 test_gr_a5a5 7 163 164movall16_reg16: 165 set_grs_a5a5 166 set_ccr_zero 167 168 mova/l.l @(1:16, r2.w), er3 169 170 test_cc_clear 171 test_gr_a5a5 0 ; Make sure other regs not affected 172 test_gr_a5a5 1 173 test_gr_a5a5 2 174 test_h_gr32 0x29695 er3 175 test_gr_a5a5 4 176 test_gr_a5a5 5 177 test_gr_a5a5 6 178 test_gr_a5a5 7 179 180movall32_reg8: 181 set_grs_a5a5 182 set_ccr_zero 183 184 mova/l.l @(1:32, r2l.b), er3 185 186 test_cc_clear 187 test_gr_a5a5 0 ; Make sure other regs not affected 188 test_gr_a5a5 1 189 test_gr_a5a5 2 190 test_h_gr32 0x295 er3 191 test_gr_a5a5 4 192 test_gr_a5a5 5 193 test_gr_a5a5 6 194 test_gr_a5a5 7 195 196movall32_reg16: 197 set_grs_a5a5 198 set_ccr_zero 199 200 mova/l.l @(1:32, r2.w), er3 201 202 test_cc_clear 203 test_gr_a5a5 0 ; Make sure other regs not affected 204 test_gr_a5a5 1 205 test_gr_a5a5 2 206 test_h_gr32 0x29695 er3 207 test_gr_a5a5 4 208 test_gr_a5a5 5 209 test_gr_a5a5 6 210 test_gr_a5a5 7 211 212t02_mova: 213 set_grs_a5a5 214 set_ccr_zero 215 216 mov.l #0x01010101, er1 217 mova/b.c @(0x1234:16,r1l.b),er1 ; 7A891234 218 test_h_gr32 0x1235, er1 ; 1s 219 mov.l #0x01010101, er1 220 mova/b.c @(0x1234:16,r1.w),er1 ; 7A991234 221 test_h_gr32 0x1335, er1 ; 2s 222 mov.l #0x01010101, er1 223 mova/w.c @(0x1234:16,r1l.b),er1 ; 7AA91234 224 test_h_gr32 0x1236, er1 ; 3s 225 mov.l #0x01010101, er1 226 mova/w.c @(0x1234:16,r1.w),er1 ; 7AB91234 227 test_h_gr32 0x1436, er1 ; 4s 228 mov.l #0x01010101, er1 229 mova/l.c @(0x1234:16,r1l.b),er1 ; 7AC91234 230 test_h_gr32 0x1238, er1 ; 5s 231 mov.l #0x01010101, er1 232 mova/l.c @(0x1234:16,r1.w),er1 ; 7AD91234 233 test_h_gr32 0x1638, er1 ; 6s 234 mov.l #0x01010101, er1 235 mova/b.c @(0x12345678:32,r1l.b),er1 ; 7A8112345678 236 test_h_gr32 0x12345679, er1 ; 7s 237 mov.l #0x01010101, er1 238 mova/b.c @(0x12345678:32,r1.w),er1 ; 7A9112345678 239 test_h_gr32 0x12345779, er1 ; 8s 240 mov.l #0x01010101, er1 241 mova/w.c @(0x12345678:32,r1l.b),er1 ; 7AA112345678 242 test_h_gr32 0x1234567a, er1 ; 9s 243 mov.l #0x01010101, er1 244 mova/w.c @(0x12345678:32,r1.w),er1 ; 7AB112345678 245 test_h_gr32 0x1234587a, er1 ; 10s 246 mov.l #0x01010101, er1 247 mova/l.c @(0x12345678:32,r1l.b),er1 ; 7AC112345678 248 test_h_gr32 0x1234567c, er1 ; 11s 249 mov.l #0x01010101, er1 250 mova/l.c @(0x12345678:32,r1.w),er1 ; 7AD112345678 251 test_h_gr32 0x12345a7c, er1 ; 12s 252 253t02b: 254 mov.l #0x01010101, er3 255 mova/b.l @(0x1234:16,r3l.b),er1 ; 78B87A891234 256 test_h_gr32 0x1235, er1 ; 1 257 mova/b.l @(0x1234:16,r3.w),er1 ; 78397A991234 258 test_h_gr32 0x1335, er1 ; 2 259 mova/w.l @(0x1234:16,r3l.b),er1 ; 78B87AA91234 260 test_h_gr32 0x1236, er1 ; 3 261 mova/w.l @(0x1234:16,r3.w),er1 ; 78397AB91234 262 test_h_gr32 0x1436, er1 ; 4 263 mova/l.l @(0x1234:16,r3l.b),er1 ; 78B87AC91234 264 test_h_gr32 0x1238, er1 ; 5 265 mova/l.l @(0x1234:16,r3.w),er1 ; 78397AD91234 266 test_h_gr32 0x1638, er1 ; 6 267 mova/b.l @(0x12345678:32,r3l.b),er1 ; 78B87A8112345678 268 test_h_gr32 0x12345679, er1 ; 7 269 mova/b.l @(0x12345678:32,r3.w),er1 ; 78397A9112345678 270 test_h_gr32 0x12345779, er1 ; 8 271 mova/w.l @(0x12345678:32,r3l.b),er1 ; 78B87AA112345678 272 test_h_gr32 0x1234567a, er1 ; 9 273 mova/w.l @(0x12345678:32,r3.w),er1 ; 78397AB112345678 274 test_h_gr32 0x1234587a, er1 ; 10 275 mova/l.l @(0x12345678:32,r3l.b),er1 ; 78B87AC112345678 276 test_h_gr32 0x1234567c, er1 ; 11 277 mova/l.l @(0x12345678:32,r3.w),er1 ; 78397AD112345678 278 test_h_gr32 0x12345a7c, er1 ; 12 279 test_h_gr32 0x01010101, er3 280t02c: 281 mov.l #foo, er2 282 mova/b.l @(0x1234:16,@er2.b),er1 ;017F02811234 283 test_h_gr32 0x1235, er1 ; 13 284 test_h_gr32 foo, er2 285 mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12811234 286 test_h_gr32 0x1235, er1 ; 18 287 test_h_gr32 foo, er2 288 mova/b.l @(0x1234:16,@er2+.b),er1 ;017F82811234 289 test_h_gr32 0x1235, er1 ; 14 290 test_h_gr32 foo+1, er2 291 mova/b.l @(0x1234:16,@-er2.b),er1 ;017FB2811234 292 test_h_gr32 0x1235, er1 ; 17 293 test_h_gr32 foo, er2 294 mova/b.l @(0x1234:16,@+er2.b),er1 ;017F92811234 295 test_h_gr32 0x1235, er1 ; 16 296 test_h_gr32 foo+1, er2 297 mova/b.l @(0x1234:16,@er2-.b),er1 ;017FA2811234 298 test_h_gr32 0x1235, er1 ; 15 299 test_h_gr32 foo, er2 300t02d: 301 mov.l #4, er2 302 mova/b.l @(0x1234:16, @(foo:16, er2).b), er1 303 test_h_gr32 0x1244, er1 ; 19 304 mova/b.l @(0x1234:16, @(foo:16, r2L.b).b), er1 305 test_h_gr32 0x1244, er1 ; 21 306 mova/b.l @(0x1234:16, @(foo:16, r2.w).b), er1 307 test_h_gr32 0x1244, er1 ; 22 308 mova/b.l @(0x1234:16, @(foo:16, er2.l).b), er1 309 test_h_gr32 0x1244, er1 ; 23 310 311 mov.l #4, er2 312 mova/b.l @(0x1234:16, @(foo:32, er2).b), er1 313 test_h_gr32 0x1244, er1 ; 20 314 mova/b.l @(0x1234:16, @(foo:32, r2L.b).b), er1 315 test_h_gr32 0x1244, er1 ; 24 316 mova/b.l @(0x1234:16, @(foo:32, r2.w).b), er1 317 test_h_gr32 0x1244, er1 ; 25 318 mova/b.l @(0x1234:16, @(foo:32, er2.l).b), er1 319 test_h_gr32 0x1244, er1 ; 26 320 321 mova/b.l @(0x1234:16,@foo:16.b),er1 322 test_h_gr32 0x1235, er1 ; 27 323 mova/b.l @(0x1234:16,@foo:32.b),er1 324 test_h_gr32 0x1235, er1 ; 28 325 326t02e: 327 mov.l #foo, er2 328 mova/b.l @(0x1234:16,@er2.w),er1 ;015F02911234 329 test_h_gr32 0x1335, er1 ; 29 330 test_h_gr32 foo, er2 331 mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12911234 332 test_h_gr32 0x1335, er1 ; 34 333 test_h_gr32 foo, er2 334 mova/b.l @(0x1234:16,@er2+.w),er1 ;015F82911234 335 test_h_gr32 0x1335, er1 ; 30 336 test_h_gr32 foo+2, er2 337 mova/b.l @(0x1234:16,@-er2.w),er1 ;015FB2911234 338 test_h_gr32 0x1335, er1 ; 33 339 test_h_gr32 foo, er2 340 mova/b.l @(0x1234:16,@+er2.w),er1 ;015F92911234 341 test_h_gr32 0x1335, er1 ; 32 342 test_h_gr32 foo+2, er2 343 mova/b.l @(0x1234:16,@er2-.w),er1 ;015FA2911234 344 test_h_gr32 0x1335, er1 ; 31 345 test_h_gr32 foo, er2 346 347 mov.l #4, er2 348 mova/b.l @(0x1234:16, @(foo:16, er2).w), er1 349 test_h_gr32 0x2244, er1 ; 35 350 shar.l er2 351 mova/b.l @(0x1234:16, @(foo:16, r2L.b).w), er1 352 test_h_gr32 0x2244, er1 ; 37 353 mova/b.l @(0x1234:16, @(foo:16, r2.w).w), er1 354 test_h_gr32 0x2244, er1 ; 38 355 mova/b.l @(0x1234:16, @(foo:16, er2.l).w), er1 356 test_h_gr32 0x2244, er1 ; 39 357 358 mov.l #4, er2 359 mova/b.l @(0x1234:16, @(foo:32, er2).w), er1 360 test_h_gr32 0x2244, er1 ; 36 361 shar.l er2 362 mova/b.l @(0x1234:16, @(foo:32, r2L.b).w), er1 363 test_h_gr32 0x2244, er1 ; 40 364 mova/b.l @(0x1234:16, @(foo:32, r2.w).w), er1 365 test_h_gr32 0x2244, er1 ; 41 366 mova/b.l @(0x1234:16, @(foo:32, er2.l).w), er1 367 test_h_gr32 0x2244, er1 ; 42 368 369 mova/b.l @(0x1234:16,@foo:16.w),er1 ;015F40919ABC1234 370 test_h_gr32 0x1335, er1 ; 43 371 mova/b.l @(0x1234:16,@foo:32.w),er1 ;015F48919ABCDEF01234 372 test_h_gr32 0x1335, er1 ; 44 373 374t02f: 375 mov.l #foo, er2 376 mova/w.l @(0x1234:16,@er2.b),er1 ;017F02A11234 377 test_h_gr32 0x1236, er1 ; 45 378 mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12A11234 379 test_h_gr32 0x1236, er1 ; 50 380 mova/w.l @(0x1234:16,@er2+.b),er1 ;017F82A11234 381 test_h_gr32 0x1236, er1 ; 46 382 test_h_gr32 foo+1, er2 383 mova/w.l @(0x1234:16,@-er2.b),er1 ;017FB2A11234 384 test_h_gr32 0x1236, er1 ; 49 385 test_h_gr32 foo, er2 386 mova/w.l @(0x1234:16,@+er2.b),er1 ;017F92A11234 387 test_h_gr32 0x1236, er1 ; 48 388 test_h_gr32 foo+1, er2 389 mova/w.l @(0x1234:16,@er2-.b),er1 ;017FA2A11234 390 test_h_gr32 0x1236, er1 ; 47 391 test_h_gr32 foo, er2 392 393t02g: 394 mov.l #4, er2 395 mova/w.l @(0x1234:16, @(foo:16, er2).b), er1 396 test_h_gr32 0x1254, er1 ; 51 397 mova/w.l @(0x1234:16, @(foo:16, r2L.b).b), er1 398 test_h_gr32 0x1254, er1 ; 53 399 mova/w.l @(0x1234:16, @(foo:16, r2.w).b), er1 400 test_h_gr32 0x1254, er1 ; 54 401 mova/w.l @(0x1234:16, @(foo:16, er2.l).b), er1 402 test_h_gr32 0x1254, er1 ; 55 403 404 mov.l #4, er2 405 mova/w.l @(0x1234:16, @(foo:32, er2).b), er1 406 test_h_gr32 0x1254, er1 ; 52 407 mova/w.l @(0x1234:16, @(foo:32, r2L.b).b), er1 408 test_h_gr32 0x1254, er1 ; 56 409 mova/w.l @(0x1234:16, @(foo:32, r2.w).b), er1 410 test_h_gr32 0x1254, er1 ; 57 411 mova/w.l @(0x1234:16, @(foo:32, er2.l).b), er1 412 test_h_gr32 0x1254, er1 ; 58 413 414 mova/w.l @(0x1234:16,@foo:16.b),er1 ;017F40A19ABC1234 415 test_h_gr32 0x1236, er1 ; 59 (can't test -- points into the woods) 416 mova/w.l @(0x1234:16,@foo:32.b),er1 ;017F48A19ABCDEF01234 417 test_h_gr32 0x1236, er1 ; 60 (can't test -- points into the woods) 418 419t02h: 420 mov.l #foo, er2 421 mova/w.l @(0x1234:16,@er2.w),er1 ;015F02B11234 422 test_h_gr32 0x1436, er1 ; 61 423 mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12B11234 424 test_h_gr32 0x1436, er1 ; 66, 0x1234 + (@(4+foo).w << 1 425 mova/w.l @(0x1234:16,@er2+.w),er1 ;015F82B11234 426 test_h_gr32 0x1436, er1 ; 62 427 test_h_gr32 foo+2, er2 428 mova/w.l @(0x1234:16,@-er2.w),er1 ;015FB2B11234 429 test_h_gr32 0x1436, er1 ; 63 430 test_h_gr32 foo, er2 431 mova/w.l @(0x1234:16,@+er2.w),er1 ;015F92B11234 432 test_h_gr32 0x1436, er1 ; 64 433 test_h_gr32 foo+2, er2 434 mova/w.l @(0x1234:16,@er2-.w),er1 ;015FA2B11234 435 test_h_gr32 0x1436, er1 ; 65 436 test_h_gr32 foo, er2 437t02i: 438 mov.l #4, er2 439 mova/w.l @(0x1234:16, @(foo:16, er2).w), er1 440 test_h_gr32 0x3254, er1 ; 67 441 shar.l er2 442 mova/w.l @(0x1234:16, @(foo:16, r2L.b).w), er1 443 test_h_gr32 0x3254, er1 ; 69 444 mova/w.l @(0x1234:16, @(foo:16, r2.w).w), er1 445 test_h_gr32 0x3254, er1 ; 70 446 mova/w.l @(0x1234:16, @(foo:16, er2.l).w), er1 447 test_h_gr32 0x3254, er1 ; 71 448 449 mov.l #4, er2 450 mova/w.l @(0x1234:16, @(foo:32, er2).w), er1 451 test_h_gr32 0x3254, er1 ; 68 452 shar.l er2 453 mova/w.l @(0x1234:16, @(foo:32, r2L.b).w), er1 454 test_h_gr32 0x3254, er1 ; 72 455 mova/w.l @(0x1234:16, @(foo:32, r2.w).w), er1 456 test_h_gr32 0x3254, er1 ; 73 457 mova/w.l @(0x1234:16, @(foo:32, er2.l).w), er1 458 test_h_gr32 0x3254, er1 ; 74 459 460 mova/w.l @(0x1234:16,@foo:16.w),er1 ;015F40B19ABC1234 461 test_h_gr32 0x1436, er1 ; 75 (can't test -- points into the woods) 462 mova/w.l @(0x1234:16,@foo:32.w),er1 ;015F48B19ABCDEF01234 463 test_h_gr32 0x1436, er1 ; 76 (can't test -- points into the woods) 464 465t02j: 466 mov.l #foo, er2 467 mova/l.l @(0x1234:16,@er2.b),er1 ;017F02C11234 468 test_h_gr32 0x1238, er1 ; 77 469 mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12C11234 470 test_h_gr32 0x1238, er1 ; 82 471 mova/l.l @(0x1234:16,@er2+.b),er1 ;017F82C11234 472 test_h_gr32 0x1238, er1 ; 78 473 test_h_gr32 foo+1, er2 474 mova/l.l @(0x1234:16,@-er2.b),er1 ;017FB2C11234 475 test_h_gr32 0x1238, er1 ; 79 476 test_h_gr32 foo, er2 477 mova/l.l @(0x1234:16,@+er2.b),er1 ;017F92C11234 478 test_h_gr32 0x1238, er1 ; 80 479 test_h_gr32 foo+1, er2 480 mova/l.l @(0x1234:16,@er2-.b),er1 ;017FA2C11234 481 test_h_gr32 0x1238, er1 ; 81 482 test_h_gr32 foo, er2 483 484t02k: 485 mov.l #4, er2 486 mova/l.l @(0x1234:16, @(foo:16, er2).b), er1 487 test_h_gr32 0x1274, er1 ; 83 488 mova/l.l @(0x1234:16, @(foo:16, r2L.b).b), er1 489 test_h_gr32 0x1274, er1 ; 85 490 mova/l.l @(0x1234:16, @(foo:16, r2.w).b), er1 491 test_h_gr32 0x1274, er1 ; 86 492 mova/l.l @(0x1234:16, @(foo:16, er2.l).b), er1 493 test_h_gr32 0x1274, er1 ; 87 494 495 mov.l #4, er2 496 mova/l.l @(0x1234:16, @(foo:32, er2).b), er1 497 test_h_gr32 0x1274, er1 ; 84 498 mova/l.l @(0x1234:16, @(foo:32, r2L.b).b), er1 499 test_h_gr32 0x1274, er1 ; 88 500 mova/l.l @(0x1234:16, @(foo:32, r2.w).b), er1 501 test_h_gr32 0x1274, er1 ; 89 502 mova/l.l @(0x1234:16, @(foo:32, er2.l).b), er1 503 test_h_gr32 0x1274, er1 ; 90 504 505 mova/l.l @(0x1234:16,@foo:16.b),er1 ;017F40C19ABC1234 506 test_h_gr32 0x1238, er1 ; 91 (can't test -- points into the woods) 507 mova/l.l @(0x1234:16,@foo:32.b),er1 ;017F48C19ABCDEF01234 508 test_h_gr32 0x1238, er1 ; 92 (can't test -- points into the woods) 509 510t02l: 511 mov.l #foo, er2 512 mova/l.l @(0x1234:16,@er2.w),er1 ;015F02D11234 513 test_h_gr32 0x1638, er1 ; 93 514 mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12D11234 515 test_h_gr32 0x1638, er1 ; 98 516 mova/l.l @(0x1234:16,@er2+.w),er1 ;015F82D11234 517 test_h_gr32 0x1638, er1 ; 94 518 test_h_gr32 foo+2, er2 519 mova/l.l @(0x1234:16,@-er2.w),er1 ;015FB2D11234 520 test_h_gr32 0x1638, er1 ; 97 521 test_h_gr32 foo, er2 522 mova/l.l @(0x1234:16,@+er2.w),er1 ;015F92D11234 523 test_h_gr32 0x1638, er1 ; 96 524 test_h_gr32 foo+2, er2 525 mova/l.l @(0x1234:16,@er2-.w),er1 ;015FA2D11234 526 test_h_gr32 0x1638, er1 ; 95 527 test_h_gr32 foo, er2 528 529t02o: 530 mov.l #4, er2 531 mova/l.l @(0x1234:16, @(foo:16, er2).w), er1 532 test_h_gr32 0x5274, er1 ; 99 533 shar.l er2 534 mova/l.l @(0x1234:16, @(foo:16, r2L.b).w), er1 535 test_h_gr32 0x5274, er1 ; 101 536 mova/l.l @(0x1234:16, @(foo:16, r2.w).w), er1 537 test_h_gr32 0x5274, er1 ; 102 538 mova/l.l @(0x1234:16, @(foo:16, er2.l).w), er1 539 test_h_gr32 0x5274, er1 ; 103 540 541 mov.l #4, er2 542 mova/l.l @(0x1234:16, @(foo:32, er2).w), er1 543 test_h_gr32 0x5274, er1 ; 100 544 shar.l er2 545 mova/l.l @(0x1234:16, @(foo:32, r2L.b).w), er1 546 test_h_gr32 0x5274, er1 ; 104 547 mova/l.l @(0x1234:16, @(foo:32, r2.w).w), er1 548 test_h_gr32 0x5274, er1 ; 105 549 mova/l.l @(0x1234:16, @(foo:32, er2.l).w), er1 550 test_h_gr32 0x5274, er1 ; 106 551 552 mova/l.l @(0x1234:16,@foo:16.w),er1 ;015F40D19ABC1234 553 test_h_gr32 0x1638, er1 ; 107 (can't test -- points into the woods) 554 mova/l.l @(0x1234:16,@foo:32.w),er1 ;015F48D19ABCDEF01234 555 test_h_gr32 0x1638, er1 ; 108 (can't test -- points into the woods) 556 557t02p: 558 mov.l #foo, er2 559 mova/b.l @(0x12345678:32,@er2.b),er1 ;017F028912345678 560 test_h_gr32 0x12345679, er1 ; 109 561 mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F128912345678 562 test_h_gr32 0x12345679, er1 ; 114 563 mova/b.l @(0x12345678:32,@er2+.b),er1 ;017F828912345678 564 test_h_gr32 0x12345679, er1 ; 110 565 test_h_gr32 foo+1, er2 566 mova/b.l @(0x12345678:32,@-er2.b),er1 ;017FB28912345678 567 test_h_gr32 0x12345679, er1 ; 113 568 test_h_gr32 foo, er2 569 mova/b.l @(0x12345678:32,@+er2.b),er1 ;017F928912345678 570 test_h_gr32 0x12345679, er1 ; 112 571 test_h_gr32 foo+1, er2 572 mova/b.l @(0x12345678:32,@er2-.b),er1 ;017FA28912345678 573 test_h_gr32 0x12345679, er1 ; 111 574 test_h_gr32 foo, er2 575 576t02q: 577 mov.l #4, er2 578 mova/b.l @(0x12345678:32, @(foo:16, er2).b), er1 579 test_h_gr32 0x12345688, er1 ; 115 580 mova/b.l @(0x12345678:32, @(foo:16, r2L.b).b), er1 581 test_h_gr32 0x12345688, er1 ; 117 582 mova/b.l @(0x12345678:32, @(foo:16, r2.w).b), er1 583 test_h_gr32 0x12345688, er1 ; 118 584 mova/b.l @(0x12345678:32, @(foo:16, er2.l).b), er1 585 test_h_gr32 0x12345688, er1 ; 119 586 587 mov.l #4, er2 588 mova/b.l @(0x12345678:32, @(foo:32, er2).b), er1 589 test_h_gr32 0x12345688, er1 ; 116 590 mova/b.l @(0x12345678:32, @(foo:32, r2L.b).b), er1 591 test_h_gr32 0x12345688, er1 ; 120 592 mova/b.l @(0x12345678:32, @(foo:32, r2.w).b), er1 593 test_h_gr32 0x12345688, er1 ; 121 594 mova/b.l @(0x12345678:32, @(foo:32, er2.l).b), er1 595 test_h_gr32 0x12345688, er1 ; 122 596 597 mova/b.l @(0x12345678:32,@foo:16.b),er1 598 test_h_gr32 0x12345679, er1 ; 123 599 mova/b.l @(0x12345678:32,@foo:32.b),er1 600 test_h_gr32 0x12345679, er1 ; 124 601 602t02r: 603 mov.l #foo, er2 604 mova/b.l @(0x12345678:32,@er2.w),er1 ;015F029912345678 605 test_h_gr32 0x12345779, er1 ; 125 606 mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F129912345678 607 test_h_gr32 0x12345779, er1 ; 130 608 mova/b.l @(0x12345678:32,@er2+.w),er1 ;015F829912345678 609 test_h_gr32 0x12345779, er1 ; 126 610 test_h_gr32 foo+2, er2 611 mova/b.l @(0x12345678:32,@-er2.w),er1 ;015FB29912345678 612 test_h_gr32 0x12345779, er1 ; 129 613 test_h_gr32 foo, er2 614 mova/b.l @(0x12345678:32,@+er2.w),er1 ;015F929912345678 615 test_h_gr32 0x12345779, er1 ; 128 616 test_h_gr32 foo+2, er2 617 mova/b.l @(0x12345678:32,@er2-.w),er1 ;015FA29912345678 618 test_h_gr32 0x12345779, er1 ; 127 619 test_h_gr32 foo, er2 620 621 mov.l #4, er2 622 mova/b.l @(0x12345678:32, @(foo:16, er2).w), er1 623 test_h_gr32 0x12346688, er1 ; 131 624 shar.l er2 625 mova/b.l @(0x12345678:32, @(foo:16, r2L.b).w), er1 626 test_h_gr32 0x12346688, er1 ; 133 627 mova/b.l @(0x12345678:32, @(foo:16, r2.w).w), er1 628 test_h_gr32 0x12346688, er1 ; 134 629 mova/b.l @(0x12345678:32, @(foo:16, er2.l).w), er1 630 test_h_gr32 0x12346688, er1 ; 135 631 632 mov.l #4, er2 633 mova/b.l @(0x12345678:32, @(foo:32, er2).w), er1 634 test_h_gr32 0x12346688, er1 ; 132 635 shar.l er2 636 mova/b.l @(0x12345678:32, @(foo:32, r2L.b).w), er1 637 test_h_gr32 0x12346688, er1 ; 136 638 mova/b.l @(0x12345678:32, @(foo:32, r2.w).w), er1 639 test_h_gr32 0x12346688, er1 ; 137 640 mova/b.l @(0x12345678:32, @(foo:32, er2.l).w), er1 641 test_h_gr32 0x12346688, er1 ; 138 642 643 mova/b.l @(0x12345678:32,@foo:16.w),er1 644 test_h_gr32 0x12345779, er1 ; 139 645 mova/b.l @(0x12345678:32,@foo:32.w),er1 646 test_h_gr32 0x12345779, er1 ; 140 647 648t02s: 649 mov.l #foo, er2 650 mova/w.l @(0x12345678:32,@er2.b),er1 ;017F02A912345678 651 test_h_gr32 0x1234567a, er1 ; 141 652 mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12A912345678 653 test_h_gr32 0x1234567a, er1 ; 146 654 mova/w.l @(0x12345678:32,@er2+.b),er1 ;017F82A912345678 655 test_h_gr32 0x1234567a, er1 ; 142 656 test_h_gr32 foo+1, er2 657 mova/w.l @(0x12345678:32,@-er2.b),er1 ;017FB2A912345678 658 test_h_gr32 0x1234567a, er1 ; 145 659 test_h_gr32 foo, er2 660 mova/w.l @(0x12345678:32,@+er2.b),er1 ;017F92A912345678 661 test_h_gr32 0x1234567a, er1 ; 144 662 test_h_gr32 foo+1, er2 663 mova/w.l @(0x12345678:32,@er2-.b),er1 ;017FA2A912345678 664 test_h_gr32 0x1234567a, er1 ; 143 665 test_h_gr32 foo, er2 666 667 mov.l #4, er2 668 mova/w.l @(0x12345678:32, @(foo:16, er2).b), er1 669 test_h_gr32 0x12345698, er1 ; 147 670 mova/w.l @(0x12345678:32, @(foo:16, r2L.b).b), er1 671 test_h_gr32 0x12345698, er1 ; 149 672 mova/w.l @(0x12345678:32, @(foo:16, r2.w).b), er1 673 test_h_gr32 0x12345698, er1 ; 150 674 mova/w.l @(0x12345678:32, @(foo:16, er2.l).b), er1 675 test_h_gr32 0x12345698, er1 ; 151 676 677 mov.l #4, er2 678 mova/w.l @(0x12345678:32, @(foo:32, er2).b), er1 679 test_h_gr32 0x12345698, er1 ; 148 680 mova/w.l @(0x12345678:32, @(foo:32, r2L.b).b), er1 681 test_h_gr32 0x12345698, er1 ; 152 682 mova/w.l @(0x12345678:32, @(foo:32, r2.w).b), er1 683 test_h_gr32 0x12345698, er1 ; 153 684 mova/w.l @(0x12345678:32, @(foo:32, er2.l).b), er1 685 test_h_gr32 0x12345698, er1 ; 154 686 687 mova/w.l @(0x12345678:32,@foo:16.b),er1 688 test_h_gr32 0x1234567a, er1 ; 155 689 mova/w.l @(0x12345678:32,@foo:32.b),er1 690 test_h_gr32 0x1234567a, er1 ; 156 691 692t02t: 693 mov.l #foo, er2 694 mova/w.l @(0x12345678:32,@er2.w),er1 ;015F02B912345678 695 test_h_gr32 0x1234587a, er1 ; 157 696 mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12B912345678 697 test_h_gr32 0x1234587a, er1 ; 162 698 mova/w.l @(0x12345678:32,@er2+.w),er1 ;015F82B912345678 699 test_h_gr32 0x1234587a, er1 ; 158 700 test_h_gr32 foo+2, er2 701 mova/w.l @(0x12345678:32,@-er2.w),er1 ;015FB2B912345678 702 test_h_gr32 0x1234587a, er1 ; 161 703 test_h_gr32 foo, er2 704 mova/w.l @(0x12345678:32,@+er2.w),er1 ;015F92B912345678 705 test_h_gr32 0x1234587a, er1 ; 160 706 test_h_gr32 foo+2, er2 707 mova/w.l @(0x12345678:32,@er2-.w),er1 ;015FA2B912345678 708 test_h_gr32 0x1234587a, er1 ; 159 709 test_h_gr32 foo, er2 710 711 mov.l #4, er2 712 mova/w.l @(0x12345678:32, @(foo:16, er2).w), er1 713 test_h_gr32 0x12347698, er1 ; 163 714 shar.l er2 715 mova/w.l @(0x12345678:32, @(foo:16, r2L.b).w), er1 716 test_h_gr32 0x12347698, er1 ; 165 717 mova/w.l @(0x12345678:32, @(foo:16, r2.w).w), er1 718 test_h_gr32 0x12347698, er1 ; 166 719 mova/w.l @(0x12345678:32, @(foo:16, er2.l).w), er1 720 test_h_gr32 0x12347698, er1 ; 167 721 722 mov.l #4, er2 723 mova/w.l @(0x12345678:32, @(foo:32, er2).w), er1 724 test_h_gr32 0x12347698, er1 ; 164 725 shar.l er2 726 mova/w.l @(0x12345678:32, @(foo:32, r2L.b).w), er1 727 test_h_gr32 0x12347698, er1 ; 168 728 mova/w.l @(0x12345678:32, @(foo:32, r2.w).w), er1 729 test_h_gr32 0x12347698, er1 ; 169 730 mova/w.l @(0x12345678:32, @(foo:32, er2.l).w), er1 731 test_h_gr32 0x12347698, er1 ; 170 732 733 mova/w.l @(0x12345678:32,@foo:16.w),er1 734 test_h_gr32 0x1234587a, er1 ; 171 735 mova/w.l @(0x12345678:32,@foo:32.w),er1 736 test_h_gr32 0x1234587a, er1 ; 172 737 738t02u: 739 mov.l #foo, er2 740 mova/l.l @(0x12345678:32,@er2.b),er1 ;017F02C912345678 741 test_h_gr32 0x1234567c, er1 ; 173 742 mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12C912345678 743 test_h_gr32 0x1234567c, er1 ; 178 744 mova/l.l @(0x12345678:32,@er2+.b),er1 ;017F82C912345678 745 test_h_gr32 0x1234567c, er1 ; 174 746 test_h_gr32 foo+1, er2 747 mova/l.l @(0x12345678:32,@-er2.b),er1 ;017FB2C912345678 748 test_h_gr32 0x1234567c, er1 ; 177 749 test_h_gr32 foo, er2 750 mova/l.l @(0x12345678:32,@+er2.b),er1 ;017F92C912345678 751 test_h_gr32 0x1234567c, er1 ; 176 752 test_h_gr32 foo+1, er2 753 mova/l.l @(0x12345678:32,@er2-.b),er1 ;017FA2C912345678 754 test_h_gr32 0x1234567c, er1 ; 175 755 test_h_gr32 foo, er2 756 757 mov.l #4, er2 758 mova/l.l @(0x12345678:32, @(foo:16, er2).b), er1 759 test_h_gr32 0x123456b8, er1 ; 179 760 mova/l.l @(0x12345678:32, @(foo:16, r2L.b).b), er1 761 test_h_gr32 0x123456b8, er1 ; 181 762 mova/l.l @(0x12345678:32, @(foo:16, r2.w).b), er1 763 test_h_gr32 0x123456b8, er1 ; 182 764 mova/l.l @(0x12345678:32, @(foo:16, er2.l).b), er1 765 test_h_gr32 0x123456b8, er1 ; 183 766 767 mov.l #4, er2 768 mova/l.l @(0x12345678:32, @(foo:32, er2).b), er1 769 test_h_gr32 0x123456b8, er1 ; 180 770 mova/l.l @(0x12345678:32, @(foo:32, r2L.b).b), er1 771 test_h_gr32 0x123456b8, er1 ; 184 772 mova/l.l @(0x12345678:32, @(foo:32, r2.w).b), er1 773 test_h_gr32 0x123456b8, er1 ; 185 774 mova/l.l @(0x12345678:32, @(foo:32, er2.l).b), er1 775 test_h_gr32 0x123456b8, er1 ; 186 776 777 mova/l.l @(0x12345678:32,@foo:16.b),er1 778 test_h_gr32 0x1234567c, er1 ; 187 779 mova/l.l @(0x12345678:32,@foo:32.b),er1 780 test_h_gr32 0x1234567c, er1 ; 188 781 782t02v: 783 mov.l #foo, er2 784 mova/l.l @(0x12345678:32,@er2.w),er1 ;015F02D912345678 785 test_h_gr32 0x12345a7c, er1 ; 189 786 mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12D912345678 787 test_h_gr32 0x12345a7c, er1 ; 194 788 mova/l.l @(0x12345678:32,@er2+.w),er1 ;015F82D912345678 789 test_h_gr32 0x12345a7c, er1 ; 190 790 test_h_gr32 foo+2, er2 791 mova/l.l @(0x12345678:32,@-er2.w),er1 ;015FB2D912345678 792 test_h_gr32 0x12345a7c, er1 ; 193 793 test_h_gr32 foo, er2 794 mova/l.l @(0x12345678:32,@+er2.w),er1 ;015F92D912345678 795 test_h_gr32 0x12345a7c, er1 ; 192 796 test_h_gr32 foo+2, er2 797 mova/l.l @(0x12345678:32,@er2-.w),er1 ;015FA2D912345678 798 test_h_gr32 0x12345a7c, er1 ; 191 799 test_h_gr32 foo, er2 800 801 mov.l #4, er2 802 mova/l.l @(0x12345678:32, @(foo:16, er2).w), er1 803 test_h_gr32 0x123496b8, er1 ; 195 804 shar.l er2 805 mova/l.l @(0x12345678:32, @(foo:16, r2L.b).w), er1 806 test_h_gr32 0x123496b8, er1 ; 197 807 mova/l.l @(0x12345678:32, @(foo:16, r2.w).w), er1 808 test_h_gr32 0x123496b8, er1 ; 198 809 mova/l.l @(0x12345678:32, @(foo:16, er2.l).w), er1 810 test_h_gr32 0x123496b8, er1 ; 199 811 812 mov.l #4, er2 813 mova/l.l @(0x12345678:32, @(foo:32, er2).w), er1 814 test_h_gr32 0x123496b8, er1 ; 195 815 shar.l er2 816 mova/l.l @(0x12345678:32, @(foo:32, r2L.b).w), er1 817 test_h_gr32 0x123496b8, er1 ; 197 818 mova/l.l @(0x12345678:32, @(foo:32, r2.w).w), er1 819 test_h_gr32 0x123496b8, er1 ; 198 820 mova/l.l @(0x12345678:32, @(foo:32, er2.l).w), er1 821 test_h_gr32 0x123496b8, er1 ; 199 822 823 mova/l.l @(0x12345678:32,@foo:16.w),er1 824 test_h_gr32 0x12345a7c, er1 ; 203 825 mova/l.l @(0x12345678:32,@foo:32.w),er1 826 test_h_gr32 0x12345a7c, er1 ; 204 827 828 test_gr_a5a5 0 829 test_h_gr32 2, er2 830 test_h_gr32 0x01010101, er3 831 test_gr_a5a5 4 832 test_gr_a5a5 5 833 test_gr_a5a5 6 834 test_gr_a5a5 7 835 836 pass 837 838 exit 0 839