.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