blob: 6510d40ef4e23b675974b770f7b4112b7b6c2c16 [file] [log] [blame]
.h8300s
.section .text
.align 2
.global _main
.global movb_tests
.global movw_tests
.global movl_tests
.global ldm_stm_tests
.global movfpe_movtpe_tests
.global add_sub_addx_subx_tests
.global inc_dec_adds_subs_tests
.global daa_das_tests
.global mul_div_tests
.global cmp_tests
.global neg_tests
.global ext_tests
.global tas_mac_tests
.global logic_operations_tests
.global sha_shl_tests
.global rot_rotx_tests
.global bset_bclr_tests
.global bnot_btst_tests
.global band_bor_bxor_tests
.global bld_bst_tests
.global branch_tests
.global system_control_tests
.global block_data_transfer_tests
_main:
nop
movb_tests:
mov.b r0l,r0h
mov.b #0x12,r1l
mov.b @er0,r1h
mov.b @(0x1234:16,er0),r2l
mov.b @(0x12345678:32,er0),r2h
mov.b @er0+,r3l
mov.b @0x12:8,r3h
mov.b @0x1234:16,r4l
mov.b @0x12345678:32,r4h
movw_tests:
mov.w e0,r0
mov.w #0x1234,r1
mov.w @er0,r2
mov.w @(0x1234:16,er0),r3
mov.w @(0x12345678:32,er0),r4
mov.w @er0+,r5
mov.w @0x1234:16,r6
mov.w @0x12345678:32,r7
movl_tests:
mov.l er0,er1
mov.l #0x12345678,er1
mov.l @er0,er2
mov.l @(0x1234:16,er0),er3
mov.l @(0x12345678:32,er0),er4
mov.l @er0+,er5
mov.l @0x1234:16,er6
mov.l @0x12345678:32,er7
ldm_stm_tests:
ldm.l @sp+,er0-er1
ldm.l @sp+,er0-er2
ldm.l @sp+,er0-er3
stm.l er0-er1,@-sp
stm.l er0-er2,@-sp
stm.l er0-er3,@-sp
movfpe_movtpe_tests:
movfpe @0x1234:16,r2l
movtpe r2l,@0x1234:16
add_sub_addx_subx_tests:
add.b #0x12,r0l
add.b r1l,r1h
add.w #0x1234,r2
add.w r3,r4
add.l #0x12345678,er5
add.l er6,er7
sub.b r1l,r1h
sub.w #0x1234,r2
sub.w r3,r4
sub.l #0x12345678,er5
sub.l er6,er7
addx #0x12,r0l
addx r1l,r1h
subx #0x12,r0l
subx r1l,r1h
inc_dec_adds_subs_tests:
inc.b r0l
inc.w #0x1,r4
inc.w #0x2,r3
inc.l #0x1,er2
inc.l #0x2,er1
dec.b r0l
dec.w #0x1,r4
dec.w #0x2,r3
dec.l #0x1,er2
dec.l #0x2,er1
adds #0x1,er7
adds #0x2,er6
adds #0x4,er5
subs #0x1,er7
subs #0x2,er6
subs #0x4,er5
daa_das_tests:
daa r0l
das r0h
mul_div_tests:
mulxs.b r0l,r1
mulxs.w r2,er3
mulxu.b r0l,e1
mulxu.w e2,er3
divxs.b r0l,r1
divxs.w r2,er3
divxu.b r0l,e1
divxu.w e2,er3
cmp_tests:
cmp.b #0x12,r0l
cmp.b r1l,r1h
cmp.w #0x1234,r2
cmp.w r3,e3
cmp.l #0x12345678,er4
cmp.l er5,er6
neg_tests:
neg.b r0l
neg.w r2
neg.l er3
ext_tests:
exts.w r0
exts.l er1
extu.w r2
extu.l er3
tas_mac_tests:
tas @er0
mac @er1+,@er2+
clrmac
ldmac er4,mach
ldmac er5,macl
stmac mach,er6
stmac macl,er7
logic_operations_tests:
and.b #0x12,r0l
and.b r1l,r2h
and.w #0x1234,r0
and.w r1,r2
and.l #0x12345678,er0
and.l er1,er2
or.b #0x12,r0l
or.b r1l,r2h
or.w #0x1234,r0
or.w r1,r2
or.l #0x12345678,er0
or.l er1,er2
xor.b #0x12,r0l
xor.b r1l,r2h
xor.w #0x1234,r0
xor.w r1,r2
xor.l #0x12345678,er0
xor.l er1,er2
not.b r0l
not.w r1
not.l er2
sha_shl_tests:
shal r0l
shal r1
shal er2
shar r3l
shar r4
shar er5
shll r0l
shll r1
shll er2
shlr r3l
shlr r4
shlr er5
rot_rotx_tests:
rotl r0l
rotl r1
rotl er2
rotr r3l
rotr r4
rotr er5
rotxl r0l
rotxl r1
rotxl er2
rotxr r3l
rotxr r4
rotxr er5
bset_bclr_tests:
bset #0x7,r0l
bset #0x6,@er1
bset #0x5,@0x12:8
bset #0x4,@0x1234:16
bset #0x3,@0x12345678:32
bset r7l,r0h
bset r6l,@er1
bset r5l,@0x12:8
bset r4l,@0x1234:16
bset r3l,@0x12345678:32
bclr #0x7,r0l
bclr #0x6,@er1
bclr #0x5,@0x12:8
bclr #0x4,@0x1234:16
bclr #0x3,@0x12345678:32
bclr r7h,r0h
bclr r6h,@er1
bclr r5h,@0x12:8
bclr r4h,@0x1234:16
bclr r3h,@0x12345678:32
bnot_btst_tests:
bnot #0x7,r0l
bnot #0x6,@er1
bnot #0x5,@0x12:8
bnot #0x4,@0x1234:16
bnot #0x3,@0x12345678:32
bnot r7l,r0h
bnot r6l,@er1
bnot r5l,@0x12:8
bnot r4l,@0x1234:16
bnot r3l,@0x12345678:32
btst #0x7,r0l
btst #0x6,@er1
btst #0x5,@0x12:8
btst #0x4,@0x1234:16
btst #0x3,@0x12345678:32
btst r7h,r0h
btst r6h,@er1
btst r5h,@0x12:8
btst r4h,@0x1234:16
btst r3h,@0x12345678:32
band_bor_bxor_tests:
band #0x7,r0l
band #0x6,@er1
band #0x5,@0x12:8
band #0x4,@0x1234:16
band #0x3,@0x12345678:32
bor #0x7,r0l
bor #0x6,@er1
bor #0x5,@0x12:8
bor #0x4,@0x1234:16
bor #0x3,@0x12345678:32
bxor #0x7,r0l
bxor #0x6,@er1
bxor #0x5,@0x12:8
bxor #0x4,@0x1234:16
bxor #0x3,@0x12345678:32
bld_bst_tests:
bld #0x7,r0l
bld #0x6,@er1
bld #0x5,@0x12:8
bld #0x4,@0x1234:16
bld #0x3,@0x12345678:32
bild #0x7,r0l
bild #0x6,@er1
bild #0x5,@0x12:8
bild #0x4,@0x1234:16
bild #0x3,@0x12345678:32
bst #0x7,r0l
bst #0x6,@er1
bst #0x5,@0x12:8
bst #0x4,@0x1234:16
bst #0x3,@0x12345678:32
bist #0x7,r0l
bist #0x6,@er1
bist #0x5,@0x12:8
bist #0x4,@0x1234:16
bist #0x3,@0x12345678:32
branch_tests:
bra branch_tests
brn branch_tests
bhi branch_tests
bls branch_tests
bcc branch_tests
bcs branch_tests
bne branch_tests
beq branch_tests
bvc branch_tests
bvs branch_tests
bpl branch_tests
bmi branch_tests
bge branch_tests
blt branch_tests
bgt branch_tests
ble branch_tests
jmp @er0
jmp @branch_tests
jmp @@0 (0)
bsr branch_tests:8
bsr branch_tests:16
jsr @er0
jsr @branch_tests
jsr @@0 (0)
rts
system_control_tests:
trapa #0x2
rte
sleep
ldc #0x12,ccr
ldc r3l,ccr
ldc @er0,ccr
ldc @(0x1234:16,er0),ccr
ldc @(0x12345678:32,er0),ccr
ldc @er1+,ccr
ldc @0x1234:16,ccr
ldc @0x12345678:32,ccr
stc ccr,r3l
stc ccr,@er0
stc ccr,@(0x1234:16,er0)
stc ccr,@(0x12345678:32,er0)
stc ccr,@-er1
stc ccr,@0x1234:16
stc ccr,@0x12345678:32
andc #0x12,ccr
orc #0x34,ccr
xorc #0x56,ccr
ldc #0x12,exr
ldc r3l,exr
ldc @er0,exr
ldc @(0x1234:16,er0),exr
ldc @(0x12345678:32,er0),exr
ldc @er1+,exr
ldc @0x1234:16,exr
ldc @0x12345678:32,exr
stc exr,r3l
stc exr,@er0
stc exr,@(0x1234:16,er0)
stc exr,@(0x12345678:32,er0)
stc exr,@-er1
stc exr,@0x1234:16
stc exr,@0x12345678:32
andc #0x12,exr
orc #0x34,exr
xorc #0x56,exr
nop
block_data_transfer_tests:
eepmov.b
eepmov.w