blob: a4bcfd6ee0bd22a270a7f58053c3f6ba4abff26d [file] [log] [blame]
# 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