| # Hitachi H8 testcase 'mova' |
| # mach(): h8sx |
| # as(h8300): --defsym sim_cpu=0 |
| # as(h8300h): --defsym sim_cpu=1 |
| # as(h8300s): --defsym sim_cpu=2 |
| # as(h8sx): --defsym sim_cpu=3 |
| # ld(h8300h): -m h8300helf |
| # ld(h8300s): -m h8300self |
| # ld(h8sx): -m h8300sxelf |
| |
| .include "testutils.inc" |
| |
| .data |
| foo: .long 0x01010101 |
| .long 0x10101010 |
| .long 0x11111111 |
| |
| start |
| |
| movabl16_reg8: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/b.l @(1:16, r2l.b), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0xa6 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movabl16_reg16: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/b.l @(1:16, r2.w), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0xa5a6 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movabl32_reg8: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/b.l @(1:32, r2l.b), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0xa6 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movabl32_reg16: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/b.l @(1:32, r2.w), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0xa5a6 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movawl16_reg8: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/w.l @(1:16, r2l.b), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x14b er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movawl16_reg16: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/w.l @(1:16, r2.w), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x14b4b er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movawl32_reg8: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/w.l @(1:32, r2l.b), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x14b er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movawl32_reg16: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/w.l @(1:32, r2.w), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x14b4b er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movall16_reg8: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/l.l @(1:16, r2l.b), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x295 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movall16_reg16: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/l.l @(1:16, r2.w), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x29695 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movall32_reg8: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/l.l @(1:32, r2l.b), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x295 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| movall32_reg16: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mova/l.l @(1:32, r2.w), er3 |
| |
| test_cc_clear |
| test_gr_a5a5 0 ; Make sure other regs not affected |
| test_gr_a5a5 1 |
| test_gr_a5a5 2 |
| test_h_gr32 0x29695 er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| t02_mova: |
| set_grs_a5a5 |
| set_ccr_zero |
| |
| mov.l #0x01010101, er1 |
| mova/b.c @(0x1234:16,r1l.b),er1 ; 7A891234 |
| test_h_gr32 0x1235, er1 ; 1s |
| mov.l #0x01010101, er1 |
| mova/b.c @(0x1234:16,r1.w),er1 ; 7A991234 |
| test_h_gr32 0x1335, er1 ; 2s |
| mov.l #0x01010101, er1 |
| mova/w.c @(0x1234:16,r1l.b),er1 ; 7AA91234 |
| test_h_gr32 0x1236, er1 ; 3s |
| mov.l #0x01010101, er1 |
| mova/w.c @(0x1234:16,r1.w),er1 ; 7AB91234 |
| test_h_gr32 0x1436, er1 ; 4s |
| mov.l #0x01010101, er1 |
| mova/l.c @(0x1234:16,r1l.b),er1 ; 7AC91234 |
| test_h_gr32 0x1238, er1 ; 5s |
| mov.l #0x01010101, er1 |
| mova/l.c @(0x1234:16,r1.w),er1 ; 7AD91234 |
| test_h_gr32 0x1638, er1 ; 6s |
| mov.l #0x01010101, er1 |
| mova/b.c @(0x12345678:32,r1l.b),er1 ; 7A8112345678 |
| test_h_gr32 0x12345679, er1 ; 7s |
| mov.l #0x01010101, er1 |
| mova/b.c @(0x12345678:32,r1.w),er1 ; 7A9112345678 |
| test_h_gr32 0x12345779, er1 ; 8s |
| mov.l #0x01010101, er1 |
| mova/w.c @(0x12345678:32,r1l.b),er1 ; 7AA112345678 |
| test_h_gr32 0x1234567a, er1 ; 9s |
| mov.l #0x01010101, er1 |
| mova/w.c @(0x12345678:32,r1.w),er1 ; 7AB112345678 |
| test_h_gr32 0x1234587a, er1 ; 10s |
| mov.l #0x01010101, er1 |
| mova/l.c @(0x12345678:32,r1l.b),er1 ; 7AC112345678 |
| test_h_gr32 0x1234567c, er1 ; 11s |
| mov.l #0x01010101, er1 |
| mova/l.c @(0x12345678:32,r1.w),er1 ; 7AD112345678 |
| test_h_gr32 0x12345a7c, er1 ; 12s |
| |
| t02b: |
| mov.l #0x01010101, er3 |
| mova/b.l @(0x1234:16,r3l.b),er1 ; 78B87A891234 |
| test_h_gr32 0x1235, er1 ; 1 |
| mova/b.l @(0x1234:16,r3.w),er1 ; 78397A991234 |
| test_h_gr32 0x1335, er1 ; 2 |
| mova/w.l @(0x1234:16,r3l.b),er1 ; 78B87AA91234 |
| test_h_gr32 0x1236, er1 ; 3 |
| mova/w.l @(0x1234:16,r3.w),er1 ; 78397AB91234 |
| test_h_gr32 0x1436, er1 ; 4 |
| mova/l.l @(0x1234:16,r3l.b),er1 ; 78B87AC91234 |
| test_h_gr32 0x1238, er1 ; 5 |
| mova/l.l @(0x1234:16,r3.w),er1 ; 78397AD91234 |
| test_h_gr32 0x1638, er1 ; 6 |
| mova/b.l @(0x12345678:32,r3l.b),er1 ; 78B87A8112345678 |
| test_h_gr32 0x12345679, er1 ; 7 |
| mova/b.l @(0x12345678:32,r3.w),er1 ; 78397A9112345678 |
| test_h_gr32 0x12345779, er1 ; 8 |
| mova/w.l @(0x12345678:32,r3l.b),er1 ; 78B87AA112345678 |
| test_h_gr32 0x1234567a, er1 ; 9 |
| mova/w.l @(0x12345678:32,r3.w),er1 ; 78397AB112345678 |
| test_h_gr32 0x1234587a, er1 ; 10 |
| mova/l.l @(0x12345678:32,r3l.b),er1 ; 78B87AC112345678 |
| test_h_gr32 0x1234567c, er1 ; 11 |
| mova/l.l @(0x12345678:32,r3.w),er1 ; 78397AD112345678 |
| test_h_gr32 0x12345a7c, er1 ; 12 |
| test_h_gr32 0x01010101, er3 |
| t02c: |
| mov.l #foo, er2 |
| mova/b.l @(0x1234:16,@er2.b),er1 ;017F02811234 |
| test_h_gr32 0x1235, er1 ; 13 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12811234 |
| test_h_gr32 0x1235, er1 ; 18 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x1234:16,@er2+.b),er1 ;017F82811234 |
| test_h_gr32 0x1235, er1 ; 14 |
| test_h_gr32 foo+1, er2 |
| mova/b.l @(0x1234:16,@-er2.b),er1 ;017FB2811234 |
| test_h_gr32 0x1235, er1 ; 17 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x1234:16,@+er2.b),er1 ;017F92811234 |
| test_h_gr32 0x1235, er1 ; 16 |
| test_h_gr32 foo+1, er2 |
| mova/b.l @(0x1234:16,@er2-.b),er1 ;017FA2811234 |
| test_h_gr32 0x1235, er1 ; 15 |
| test_h_gr32 foo, er2 |
| t02d: |
| mov.l #4, er2 |
| mova/b.l @(0x1234:16, @(foo:16, er2).b), er1 |
| test_h_gr32 0x1244, er1 ; 19 |
| mova/b.l @(0x1234:16, @(foo:16, r2L.b).b), er1 |
| test_h_gr32 0x1244, er1 ; 21 |
| mova/b.l @(0x1234:16, @(foo:16, r2.w).b), er1 |
| test_h_gr32 0x1244, er1 ; 22 |
| mova/b.l @(0x1234:16, @(foo:16, er2.l).b), er1 |
| test_h_gr32 0x1244, er1 ; 23 |
| |
| mov.l #4, er2 |
| mova/b.l @(0x1234:16, @(foo:32, er2).b), er1 |
| test_h_gr32 0x1244, er1 ; 20 |
| mova/b.l @(0x1234:16, @(foo:32, r2L.b).b), er1 |
| test_h_gr32 0x1244, er1 ; 24 |
| mova/b.l @(0x1234:16, @(foo:32, r2.w).b), er1 |
| test_h_gr32 0x1244, er1 ; 25 |
| mova/b.l @(0x1234:16, @(foo:32, er2.l).b), er1 |
| test_h_gr32 0x1244, er1 ; 26 |
| |
| mova/b.l @(0x1234:16,@foo:16.b),er1 |
| test_h_gr32 0x1235, er1 ; 27 |
| mova/b.l @(0x1234:16,@foo:32.b),er1 |
| test_h_gr32 0x1235, er1 ; 28 |
| |
| t02e: |
| mov.l #foo, er2 |
| mova/b.l @(0x1234:16,@er2.w),er1 ;015F02911234 |
| test_h_gr32 0x1335, er1 ; 29 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12911234 |
| test_h_gr32 0x1335, er1 ; 34 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x1234:16,@er2+.w),er1 ;015F82911234 |
| test_h_gr32 0x1335, er1 ; 30 |
| test_h_gr32 foo+2, er2 |
| mova/b.l @(0x1234:16,@-er2.w),er1 ;015FB2911234 |
| test_h_gr32 0x1335, er1 ; 33 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x1234:16,@+er2.w),er1 ;015F92911234 |
| test_h_gr32 0x1335, er1 ; 32 |
| test_h_gr32 foo+2, er2 |
| mova/b.l @(0x1234:16,@er2-.w),er1 ;015FA2911234 |
| test_h_gr32 0x1335, er1 ; 31 |
| test_h_gr32 foo, er2 |
| |
| mov.l #4, er2 |
| mova/b.l @(0x1234:16, @(foo:16, er2).w), er1 |
| test_h_gr32 0x2244, er1 ; 35 |
| shar.l er2 |
| mova/b.l @(0x1234:16, @(foo:16, r2L.b).w), er1 |
| test_h_gr32 0x2244, er1 ; 37 |
| mova/b.l @(0x1234:16, @(foo:16, r2.w).w), er1 |
| test_h_gr32 0x2244, er1 ; 38 |
| mova/b.l @(0x1234:16, @(foo:16, er2.l).w), er1 |
| test_h_gr32 0x2244, er1 ; 39 |
| |
| mov.l #4, er2 |
| mova/b.l @(0x1234:16, @(foo:32, er2).w), er1 |
| test_h_gr32 0x2244, er1 ; 36 |
| shar.l er2 |
| mova/b.l @(0x1234:16, @(foo:32, r2L.b).w), er1 |
| test_h_gr32 0x2244, er1 ; 40 |
| mova/b.l @(0x1234:16, @(foo:32, r2.w).w), er1 |
| test_h_gr32 0x2244, er1 ; 41 |
| mova/b.l @(0x1234:16, @(foo:32, er2.l).w), er1 |
| test_h_gr32 0x2244, er1 ; 42 |
| |
| mova/b.l @(0x1234:16,@foo:16.w),er1 ;015F40919ABC1234 |
| test_h_gr32 0x1335, er1 ; 43 |
| mova/b.l @(0x1234:16,@foo:32.w),er1 ;015F48919ABCDEF01234 |
| test_h_gr32 0x1335, er1 ; 44 |
| |
| t02f: |
| mov.l #foo, er2 |
| mova/w.l @(0x1234:16,@er2.b),er1 ;017F02A11234 |
| test_h_gr32 0x1236, er1 ; 45 |
| mova/w.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12A11234 |
| test_h_gr32 0x1236, er1 ; 50 |
| mova/w.l @(0x1234:16,@er2+.b),er1 ;017F82A11234 |
| test_h_gr32 0x1236, er1 ; 46 |
| test_h_gr32 foo+1, er2 |
| mova/w.l @(0x1234:16,@-er2.b),er1 ;017FB2A11234 |
| test_h_gr32 0x1236, er1 ; 49 |
| test_h_gr32 foo, er2 |
| mova/w.l @(0x1234:16,@+er2.b),er1 ;017F92A11234 |
| test_h_gr32 0x1236, er1 ; 48 |
| test_h_gr32 foo+1, er2 |
| mova/w.l @(0x1234:16,@er2-.b),er1 ;017FA2A11234 |
| test_h_gr32 0x1236, er1 ; 47 |
| test_h_gr32 foo, er2 |
| |
| t02g: |
| mov.l #4, er2 |
| mova/w.l @(0x1234:16, @(foo:16, er2).b), er1 |
| test_h_gr32 0x1254, er1 ; 51 |
| mova/w.l @(0x1234:16, @(foo:16, r2L.b).b), er1 |
| test_h_gr32 0x1254, er1 ; 53 |
| mova/w.l @(0x1234:16, @(foo:16, r2.w).b), er1 |
| test_h_gr32 0x1254, er1 ; 54 |
| mova/w.l @(0x1234:16, @(foo:16, er2.l).b), er1 |
| test_h_gr32 0x1254, er1 ; 55 |
| |
| mov.l #4, er2 |
| mova/w.l @(0x1234:16, @(foo:32, er2).b), er1 |
| test_h_gr32 0x1254, er1 ; 52 |
| mova/w.l @(0x1234:16, @(foo:32, r2L.b).b), er1 |
| test_h_gr32 0x1254, er1 ; 56 |
| mova/w.l @(0x1234:16, @(foo:32, r2.w).b), er1 |
| test_h_gr32 0x1254, er1 ; 57 |
| mova/w.l @(0x1234:16, @(foo:32, er2.l).b), er1 |
| test_h_gr32 0x1254, er1 ; 58 |
| |
| mova/w.l @(0x1234:16,@foo:16.b),er1 ;017F40A19ABC1234 |
| test_h_gr32 0x1236, er1 ; 59 (can't test -- points into the woods) |
| mova/w.l @(0x1234:16,@foo:32.b),er1 ;017F48A19ABCDEF01234 |
| test_h_gr32 0x1236, er1 ; 60 (can't test -- points into the woods) |
| |
| t02h: |
| mov.l #foo, er2 |
| mova/w.l @(0x1234:16,@er2.w),er1 ;015F02B11234 |
| test_h_gr32 0x1436, er1 ; 61 |
| mova/w.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12B11234 |
| test_h_gr32 0x1436, er1 ; 66, 0x1234 + (@(4+foo).w << 1 |
| mova/w.l @(0x1234:16,@er2+.w),er1 ;015F82B11234 |
| test_h_gr32 0x1436, er1 ; 62 |
| test_h_gr32 foo+2, er2 |
| mova/w.l @(0x1234:16,@-er2.w),er1 ;015FB2B11234 |
| test_h_gr32 0x1436, er1 ; 63 |
| test_h_gr32 foo, er2 |
| mova/w.l @(0x1234:16,@+er2.w),er1 ;015F92B11234 |
| test_h_gr32 0x1436, er1 ; 64 |
| test_h_gr32 foo+2, er2 |
| mova/w.l @(0x1234:16,@er2-.w),er1 ;015FA2B11234 |
| test_h_gr32 0x1436, er1 ; 65 |
| test_h_gr32 foo, er2 |
| t02i: |
| mov.l #4, er2 |
| mova/w.l @(0x1234:16, @(foo:16, er2).w), er1 |
| test_h_gr32 0x3254, er1 ; 67 |
| shar.l er2 |
| mova/w.l @(0x1234:16, @(foo:16, r2L.b).w), er1 |
| test_h_gr32 0x3254, er1 ; 69 |
| mova/w.l @(0x1234:16, @(foo:16, r2.w).w), er1 |
| test_h_gr32 0x3254, er1 ; 70 |
| mova/w.l @(0x1234:16, @(foo:16, er2.l).w), er1 |
| test_h_gr32 0x3254, er1 ; 71 |
| |
| mov.l #4, er2 |
| mova/w.l @(0x1234:16, @(foo:32, er2).w), er1 |
| test_h_gr32 0x3254, er1 ; 68 |
| shar.l er2 |
| mova/w.l @(0x1234:16, @(foo:32, r2L.b).w), er1 |
| test_h_gr32 0x3254, er1 ; 72 |
| mova/w.l @(0x1234:16, @(foo:32, r2.w).w), er1 |
| test_h_gr32 0x3254, er1 ; 73 |
| mova/w.l @(0x1234:16, @(foo:32, er2.l).w), er1 |
| test_h_gr32 0x3254, er1 ; 74 |
| |
| mova/w.l @(0x1234:16,@foo:16.w),er1 ;015F40B19ABC1234 |
| test_h_gr32 0x1436, er1 ; 75 (can't test -- points into the woods) |
| mova/w.l @(0x1234:16,@foo:32.w),er1 ;015F48B19ABCDEF01234 |
| test_h_gr32 0x1436, er1 ; 76 (can't test -- points into the woods) |
| |
| t02j: |
| mov.l #foo, er2 |
| mova/l.l @(0x1234:16,@er2.b),er1 ;017F02C11234 |
| test_h_gr32 0x1238, er1 ; 77 |
| mova/l.l @(0x1234:16,@(0x1:2,er2).b),er1 ;017F12C11234 |
| test_h_gr32 0x1238, er1 ; 82 |
| mova/l.l @(0x1234:16,@er2+.b),er1 ;017F82C11234 |
| test_h_gr32 0x1238, er1 ; 78 |
| test_h_gr32 foo+1, er2 |
| mova/l.l @(0x1234:16,@-er2.b),er1 ;017FB2C11234 |
| test_h_gr32 0x1238, er1 ; 79 |
| test_h_gr32 foo, er2 |
| mova/l.l @(0x1234:16,@+er2.b),er1 ;017F92C11234 |
| test_h_gr32 0x1238, er1 ; 80 |
| test_h_gr32 foo+1, er2 |
| mova/l.l @(0x1234:16,@er2-.b),er1 ;017FA2C11234 |
| test_h_gr32 0x1238, er1 ; 81 |
| test_h_gr32 foo, er2 |
| |
| t02k: |
| mov.l #4, er2 |
| mova/l.l @(0x1234:16, @(foo:16, er2).b), er1 |
| test_h_gr32 0x1274, er1 ; 83 |
| mova/l.l @(0x1234:16, @(foo:16, r2L.b).b), er1 |
| test_h_gr32 0x1274, er1 ; 85 |
| mova/l.l @(0x1234:16, @(foo:16, r2.w).b), er1 |
| test_h_gr32 0x1274, er1 ; 86 |
| mova/l.l @(0x1234:16, @(foo:16, er2.l).b), er1 |
| test_h_gr32 0x1274, er1 ; 87 |
| |
| mov.l #4, er2 |
| mova/l.l @(0x1234:16, @(foo:32, er2).b), er1 |
| test_h_gr32 0x1274, er1 ; 84 |
| mova/l.l @(0x1234:16, @(foo:32, r2L.b).b), er1 |
| test_h_gr32 0x1274, er1 ; 88 |
| mova/l.l @(0x1234:16, @(foo:32, r2.w).b), er1 |
| test_h_gr32 0x1274, er1 ; 89 |
| mova/l.l @(0x1234:16, @(foo:32, er2.l).b), er1 |
| test_h_gr32 0x1274, er1 ; 90 |
| |
| mova/l.l @(0x1234:16,@foo:16.b),er1 ;017F40C19ABC1234 |
| test_h_gr32 0x1238, er1 ; 91 (can't test -- points into the woods) |
| mova/l.l @(0x1234:16,@foo:32.b),er1 ;017F48C19ABCDEF01234 |
| test_h_gr32 0x1238, er1 ; 92 (can't test -- points into the woods) |
| |
| t02l: |
| mov.l #foo, er2 |
| mova/l.l @(0x1234:16,@er2.w),er1 ;015F02D11234 |
| test_h_gr32 0x1638, er1 ; 93 |
| mova/l.l @(0x1234:16,@(0x2:2,er2).w),er1 ;015F12D11234 |
| test_h_gr32 0x1638, er1 ; 98 |
| mova/l.l @(0x1234:16,@er2+.w),er1 ;015F82D11234 |
| test_h_gr32 0x1638, er1 ; 94 |
| test_h_gr32 foo+2, er2 |
| mova/l.l @(0x1234:16,@-er2.w),er1 ;015FB2D11234 |
| test_h_gr32 0x1638, er1 ; 97 |
| test_h_gr32 foo, er2 |
| mova/l.l @(0x1234:16,@+er2.w),er1 ;015F92D11234 |
| test_h_gr32 0x1638, er1 ; 96 |
| test_h_gr32 foo+2, er2 |
| mova/l.l @(0x1234:16,@er2-.w),er1 ;015FA2D11234 |
| test_h_gr32 0x1638, er1 ; 95 |
| test_h_gr32 foo, er2 |
| |
| t02o: |
| mov.l #4, er2 |
| mova/l.l @(0x1234:16, @(foo:16, er2).w), er1 |
| test_h_gr32 0x5274, er1 ; 99 |
| shar.l er2 |
| mova/l.l @(0x1234:16, @(foo:16, r2L.b).w), er1 |
| test_h_gr32 0x5274, er1 ; 101 |
| mova/l.l @(0x1234:16, @(foo:16, r2.w).w), er1 |
| test_h_gr32 0x5274, er1 ; 102 |
| mova/l.l @(0x1234:16, @(foo:16, er2.l).w), er1 |
| test_h_gr32 0x5274, er1 ; 103 |
| |
| mov.l #4, er2 |
| mova/l.l @(0x1234:16, @(foo:32, er2).w), er1 |
| test_h_gr32 0x5274, er1 ; 100 |
| shar.l er2 |
| mova/l.l @(0x1234:16, @(foo:32, r2L.b).w), er1 |
| test_h_gr32 0x5274, er1 ; 104 |
| mova/l.l @(0x1234:16, @(foo:32, r2.w).w), er1 |
| test_h_gr32 0x5274, er1 ; 105 |
| mova/l.l @(0x1234:16, @(foo:32, er2.l).w), er1 |
| test_h_gr32 0x5274, er1 ; 106 |
| |
| mova/l.l @(0x1234:16,@foo:16.w),er1 ;015F40D19ABC1234 |
| test_h_gr32 0x1638, er1 ; 107 (can't test -- points into the woods) |
| mova/l.l @(0x1234:16,@foo:32.w),er1 ;015F48D19ABCDEF01234 |
| test_h_gr32 0x1638, er1 ; 108 (can't test -- points into the woods) |
| |
| t02p: |
| mov.l #foo, er2 |
| mova/b.l @(0x12345678:32,@er2.b),er1 ;017F028912345678 |
| test_h_gr32 0x12345679, er1 ; 109 |
| mova/b.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F128912345678 |
| test_h_gr32 0x12345679, er1 ; 114 |
| mova/b.l @(0x12345678:32,@er2+.b),er1 ;017F828912345678 |
| test_h_gr32 0x12345679, er1 ; 110 |
| test_h_gr32 foo+1, er2 |
| mova/b.l @(0x12345678:32,@-er2.b),er1 ;017FB28912345678 |
| test_h_gr32 0x12345679, er1 ; 113 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x12345678:32,@+er2.b),er1 ;017F928912345678 |
| test_h_gr32 0x12345679, er1 ; 112 |
| test_h_gr32 foo+1, er2 |
| mova/b.l @(0x12345678:32,@er2-.b),er1 ;017FA28912345678 |
| test_h_gr32 0x12345679, er1 ; 111 |
| test_h_gr32 foo, er2 |
| |
| t02q: |
| mov.l #4, er2 |
| mova/b.l @(0x12345678:32, @(foo:16, er2).b), er1 |
| test_h_gr32 0x12345688, er1 ; 115 |
| mova/b.l @(0x12345678:32, @(foo:16, r2L.b).b), er1 |
| test_h_gr32 0x12345688, er1 ; 117 |
| mova/b.l @(0x12345678:32, @(foo:16, r2.w).b), er1 |
| test_h_gr32 0x12345688, er1 ; 118 |
| mova/b.l @(0x12345678:32, @(foo:16, er2.l).b), er1 |
| test_h_gr32 0x12345688, er1 ; 119 |
| |
| mov.l #4, er2 |
| mova/b.l @(0x12345678:32, @(foo:32, er2).b), er1 |
| test_h_gr32 0x12345688, er1 ; 116 |
| mova/b.l @(0x12345678:32, @(foo:32, r2L.b).b), er1 |
| test_h_gr32 0x12345688, er1 ; 120 |
| mova/b.l @(0x12345678:32, @(foo:32, r2.w).b), er1 |
| test_h_gr32 0x12345688, er1 ; 121 |
| mova/b.l @(0x12345678:32, @(foo:32, er2.l).b), er1 |
| test_h_gr32 0x12345688, er1 ; 122 |
| |
| mova/b.l @(0x12345678:32,@foo:16.b),er1 |
| test_h_gr32 0x12345679, er1 ; 123 |
| mova/b.l @(0x12345678:32,@foo:32.b),er1 |
| test_h_gr32 0x12345679, er1 ; 124 |
| |
| t02r: |
| mov.l #foo, er2 |
| mova/b.l @(0x12345678:32,@er2.w),er1 ;015F029912345678 |
| test_h_gr32 0x12345779, er1 ; 125 |
| mova/b.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F129912345678 |
| test_h_gr32 0x12345779, er1 ; 130 |
| mova/b.l @(0x12345678:32,@er2+.w),er1 ;015F829912345678 |
| test_h_gr32 0x12345779, er1 ; 126 |
| test_h_gr32 foo+2, er2 |
| mova/b.l @(0x12345678:32,@-er2.w),er1 ;015FB29912345678 |
| test_h_gr32 0x12345779, er1 ; 129 |
| test_h_gr32 foo, er2 |
| mova/b.l @(0x12345678:32,@+er2.w),er1 ;015F929912345678 |
| test_h_gr32 0x12345779, er1 ; 128 |
| test_h_gr32 foo+2, er2 |
| mova/b.l @(0x12345678:32,@er2-.w),er1 ;015FA29912345678 |
| test_h_gr32 0x12345779, er1 ; 127 |
| test_h_gr32 foo, er2 |
| |
| mov.l #4, er2 |
| mova/b.l @(0x12345678:32, @(foo:16, er2).w), er1 |
| test_h_gr32 0x12346688, er1 ; 131 |
| shar.l er2 |
| mova/b.l @(0x12345678:32, @(foo:16, r2L.b).w), er1 |
| test_h_gr32 0x12346688, er1 ; 133 |
| mova/b.l @(0x12345678:32, @(foo:16, r2.w).w), er1 |
| test_h_gr32 0x12346688, er1 ; 134 |
| mova/b.l @(0x12345678:32, @(foo:16, er2.l).w), er1 |
| test_h_gr32 0x12346688, er1 ; 135 |
| |
| mov.l #4, er2 |
| mova/b.l @(0x12345678:32, @(foo:32, er2).w), er1 |
| test_h_gr32 0x12346688, er1 ; 132 |
| shar.l er2 |
| mova/b.l @(0x12345678:32, @(foo:32, r2L.b).w), er1 |
| test_h_gr32 0x12346688, er1 ; 136 |
| mova/b.l @(0x12345678:32, @(foo:32, r2.w).w), er1 |
| test_h_gr32 0x12346688, er1 ; 137 |
| mova/b.l @(0x12345678:32, @(foo:32, er2.l).w), er1 |
| test_h_gr32 0x12346688, er1 ; 138 |
| |
| mova/b.l @(0x12345678:32,@foo:16.w),er1 |
| test_h_gr32 0x12345779, er1 ; 139 |
| mova/b.l @(0x12345678:32,@foo:32.w),er1 |
| test_h_gr32 0x12345779, er1 ; 140 |
| |
| t02s: |
| mov.l #foo, er2 |
| mova/w.l @(0x12345678:32,@er2.b),er1 ;017F02A912345678 |
| test_h_gr32 0x1234567a, er1 ; 141 |
| mova/w.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12A912345678 |
| test_h_gr32 0x1234567a, er1 ; 146 |
| mova/w.l @(0x12345678:32,@er2+.b),er1 ;017F82A912345678 |
| test_h_gr32 0x1234567a, er1 ; 142 |
| test_h_gr32 foo+1, er2 |
| mova/w.l @(0x12345678:32,@-er2.b),er1 ;017FB2A912345678 |
| test_h_gr32 0x1234567a, er1 ; 145 |
| test_h_gr32 foo, er2 |
| mova/w.l @(0x12345678:32,@+er2.b),er1 ;017F92A912345678 |
| test_h_gr32 0x1234567a, er1 ; 144 |
| test_h_gr32 foo+1, er2 |
| mova/w.l @(0x12345678:32,@er2-.b),er1 ;017FA2A912345678 |
| test_h_gr32 0x1234567a, er1 ; 143 |
| test_h_gr32 foo, er2 |
| |
| mov.l #4, er2 |
| mova/w.l @(0x12345678:32, @(foo:16, er2).b), er1 |
| test_h_gr32 0x12345698, er1 ; 147 |
| mova/w.l @(0x12345678:32, @(foo:16, r2L.b).b), er1 |
| test_h_gr32 0x12345698, er1 ; 149 |
| mova/w.l @(0x12345678:32, @(foo:16, r2.w).b), er1 |
| test_h_gr32 0x12345698, er1 ; 150 |
| mova/w.l @(0x12345678:32, @(foo:16, er2.l).b), er1 |
| test_h_gr32 0x12345698, er1 ; 151 |
| |
| mov.l #4, er2 |
| mova/w.l @(0x12345678:32, @(foo:32, er2).b), er1 |
| test_h_gr32 0x12345698, er1 ; 148 |
| mova/w.l @(0x12345678:32, @(foo:32, r2L.b).b), er1 |
| test_h_gr32 0x12345698, er1 ; 152 |
| mova/w.l @(0x12345678:32, @(foo:32, r2.w).b), er1 |
| test_h_gr32 0x12345698, er1 ; 153 |
| mova/w.l @(0x12345678:32, @(foo:32, er2.l).b), er1 |
| test_h_gr32 0x12345698, er1 ; 154 |
| |
| mova/w.l @(0x12345678:32,@foo:16.b),er1 |
| test_h_gr32 0x1234567a, er1 ; 155 |
| mova/w.l @(0x12345678:32,@foo:32.b),er1 |
| test_h_gr32 0x1234567a, er1 ; 156 |
| |
| t02t: |
| mov.l #foo, er2 |
| mova/w.l @(0x12345678:32,@er2.w),er1 ;015F02B912345678 |
| test_h_gr32 0x1234587a, er1 ; 157 |
| mova/w.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12B912345678 |
| test_h_gr32 0x1234587a, er1 ; 162 |
| mova/w.l @(0x12345678:32,@er2+.w),er1 ;015F82B912345678 |
| test_h_gr32 0x1234587a, er1 ; 158 |
| test_h_gr32 foo+2, er2 |
| mova/w.l @(0x12345678:32,@-er2.w),er1 ;015FB2B912345678 |
| test_h_gr32 0x1234587a, er1 ; 161 |
| test_h_gr32 foo, er2 |
| mova/w.l @(0x12345678:32,@+er2.w),er1 ;015F92B912345678 |
| test_h_gr32 0x1234587a, er1 ; 160 |
| test_h_gr32 foo+2, er2 |
| mova/w.l @(0x12345678:32,@er2-.w),er1 ;015FA2B912345678 |
| test_h_gr32 0x1234587a, er1 ; 159 |
| test_h_gr32 foo, er2 |
| |
| mov.l #4, er2 |
| mova/w.l @(0x12345678:32, @(foo:16, er2).w), er1 |
| test_h_gr32 0x12347698, er1 ; 163 |
| shar.l er2 |
| mova/w.l @(0x12345678:32, @(foo:16, r2L.b).w), er1 |
| test_h_gr32 0x12347698, er1 ; 165 |
| mova/w.l @(0x12345678:32, @(foo:16, r2.w).w), er1 |
| test_h_gr32 0x12347698, er1 ; 166 |
| mova/w.l @(0x12345678:32, @(foo:16, er2.l).w), er1 |
| test_h_gr32 0x12347698, er1 ; 167 |
| |
| mov.l #4, er2 |
| mova/w.l @(0x12345678:32, @(foo:32, er2).w), er1 |
| test_h_gr32 0x12347698, er1 ; 164 |
| shar.l er2 |
| mova/w.l @(0x12345678:32, @(foo:32, r2L.b).w), er1 |
| test_h_gr32 0x12347698, er1 ; 168 |
| mova/w.l @(0x12345678:32, @(foo:32, r2.w).w), er1 |
| test_h_gr32 0x12347698, er1 ; 169 |
| mova/w.l @(0x12345678:32, @(foo:32, er2.l).w), er1 |
| test_h_gr32 0x12347698, er1 ; 170 |
| |
| mova/w.l @(0x12345678:32,@foo:16.w),er1 |
| test_h_gr32 0x1234587a, er1 ; 171 |
| mova/w.l @(0x12345678:32,@foo:32.w),er1 |
| test_h_gr32 0x1234587a, er1 ; 172 |
| |
| t02u: |
| mov.l #foo, er2 |
| mova/l.l @(0x12345678:32,@er2.b),er1 ;017F02C912345678 |
| test_h_gr32 0x1234567c, er1 ; 173 |
| mova/l.l @(0x12345678:32,@(0x1:2,er2).b),er1 ;017F12C912345678 |
| test_h_gr32 0x1234567c, er1 ; 178 |
| mova/l.l @(0x12345678:32,@er2+.b),er1 ;017F82C912345678 |
| test_h_gr32 0x1234567c, er1 ; 174 |
| test_h_gr32 foo+1, er2 |
| mova/l.l @(0x12345678:32,@-er2.b),er1 ;017FB2C912345678 |
| test_h_gr32 0x1234567c, er1 ; 177 |
| test_h_gr32 foo, er2 |
| mova/l.l @(0x12345678:32,@+er2.b),er1 ;017F92C912345678 |
| test_h_gr32 0x1234567c, er1 ; 176 |
| test_h_gr32 foo+1, er2 |
| mova/l.l @(0x12345678:32,@er2-.b),er1 ;017FA2C912345678 |
| test_h_gr32 0x1234567c, er1 ; 175 |
| test_h_gr32 foo, er2 |
| |
| mov.l #4, er2 |
| mova/l.l @(0x12345678:32, @(foo:16, er2).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 179 |
| mova/l.l @(0x12345678:32, @(foo:16, r2L.b).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 181 |
| mova/l.l @(0x12345678:32, @(foo:16, r2.w).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 182 |
| mova/l.l @(0x12345678:32, @(foo:16, er2.l).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 183 |
| |
| mov.l #4, er2 |
| mova/l.l @(0x12345678:32, @(foo:32, er2).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 180 |
| mova/l.l @(0x12345678:32, @(foo:32, r2L.b).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 184 |
| mova/l.l @(0x12345678:32, @(foo:32, r2.w).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 185 |
| mova/l.l @(0x12345678:32, @(foo:32, er2.l).b), er1 |
| test_h_gr32 0x123456b8, er1 ; 186 |
| |
| mova/l.l @(0x12345678:32,@foo:16.b),er1 |
| test_h_gr32 0x1234567c, er1 ; 187 |
| mova/l.l @(0x12345678:32,@foo:32.b),er1 |
| test_h_gr32 0x1234567c, er1 ; 188 |
| |
| t02v: |
| mov.l #foo, er2 |
| mova/l.l @(0x12345678:32,@er2.w),er1 ;015F02D912345678 |
| test_h_gr32 0x12345a7c, er1 ; 189 |
| mova/l.l @(0x12345678:32,@(0x2:2,er2).w),er1 ;015F12D912345678 |
| test_h_gr32 0x12345a7c, er1 ; 194 |
| mova/l.l @(0x12345678:32,@er2+.w),er1 ;015F82D912345678 |
| test_h_gr32 0x12345a7c, er1 ; 190 |
| test_h_gr32 foo+2, er2 |
| mova/l.l @(0x12345678:32,@-er2.w),er1 ;015FB2D912345678 |
| test_h_gr32 0x12345a7c, er1 ; 193 |
| test_h_gr32 foo, er2 |
| mova/l.l @(0x12345678:32,@+er2.w),er1 ;015F92D912345678 |
| test_h_gr32 0x12345a7c, er1 ; 192 |
| test_h_gr32 foo+2, er2 |
| mova/l.l @(0x12345678:32,@er2-.w),er1 ;015FA2D912345678 |
| test_h_gr32 0x12345a7c, er1 ; 191 |
| test_h_gr32 foo, er2 |
| |
| mov.l #4, er2 |
| mova/l.l @(0x12345678:32, @(foo:16, er2).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 195 |
| shar.l er2 |
| mova/l.l @(0x12345678:32, @(foo:16, r2L.b).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 197 |
| mova/l.l @(0x12345678:32, @(foo:16, r2.w).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 198 |
| mova/l.l @(0x12345678:32, @(foo:16, er2.l).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 199 |
| |
| mov.l #4, er2 |
| mova/l.l @(0x12345678:32, @(foo:32, er2).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 195 |
| shar.l er2 |
| mova/l.l @(0x12345678:32, @(foo:32, r2L.b).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 197 |
| mova/l.l @(0x12345678:32, @(foo:32, r2.w).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 198 |
| mova/l.l @(0x12345678:32, @(foo:32, er2.l).w), er1 |
| test_h_gr32 0x123496b8, er1 ; 199 |
| |
| mova/l.l @(0x12345678:32,@foo:16.w),er1 |
| test_h_gr32 0x12345a7c, er1 ; 203 |
| mova/l.l @(0x12345678:32,@foo:32.w),er1 |
| test_h_gr32 0x12345a7c, er1 ; 204 |
| |
| test_gr_a5a5 0 |
| test_h_gr32 2, er2 |
| test_h_gr32 0x01010101, er3 |
| test_gr_a5a5 4 |
| test_gr_a5a5 5 |
| test_gr_a5a5 6 |
| test_gr_a5a5 7 |
| |
| pass |
| |
| exit 0 |