.include "t-macros.i"
.section .rodata
.text
.globl main
.type main,@function
main:
mvfc r0, PSW || ldi.s r14, #0
ldi.l r2, 0x100 ; MOD_E
ldi.l r3, 0x108 ; MOD_S
test_mod_dec_ld:
mvtc r2, MOD_E || bseti r0, #7
mvtc r3, MOD_S
mvtc r0, PSW ; modulo mode enable
mv r1,r3 ; r1=0x108
ld r4, @r1- || nop ; r1=0x106
ld r4, @r1- || nop ; r1=0x104
ld r4, @r1- || nop ; r1=0x102
ld r4, @r1- || nop ; r1=0x100
ld r4, @r1- || nop ; r1=0x108
ld r4, @r1- || nop ; r1=0x106
cmpeqi r1,#0x106
brf0f _ERR ; branch to error
test_mod_inc_ld:
mvtc r2, MOD_S
mvtc r3, MOD_E
mv r1,r2 ; r1=0x100
ld r4, @r1+ || nop ; r1=0x102
ld r4, @r1+ || nop ; r1=0x104
ld r4, @r1+ || nop ; r1=0x106
ld r4, @r1+ || nop ; r1=0x108
ld r4, @r1+ || nop ; r1=0x100
ld r4, @r1+ || nop ; r1=0x102
cmpeqi r1,#0x102
brf0f _ERR
test_mod_dec_ld2w:
mvtc r2, MOD_E
mvtc r3, MOD_S
mv r1,r3 ; r1=0x108
ld2W r4, @r1- || nop ; r1=0x104
ld2W r4, @r1- || nop ; r1=0x100
ld2W r4, @r1- || nop ; r1=0x108
ld2W r4, @r1- || nop ; r1=0x104
cmpeqi r1,#0x104
brf0f _ERR ; <= branch to error
test_mod_inc_ld2w:
mvtc r2, MOD_S
mvtc r3, MOD_E || BCLRI r0, #7
mv r1,r2 ; r1=0x100
ld2W r4, @r1+ || nop ; r1=0x104
ld2W r4, @r1+ || nop ; r1=0x108
ld2W r4, @r1+ || nop ; r1=0x100
ld2W r4, @r1+ || nop ; r1=0x104
cmpeqi r1,#0x104
brf0f _ERR
test_mod_dec_ld_dis:
mvtc r0, PSW ; modulo mode disable
mvtc r2, MOD_E
mvtc r3, MOD_S
mv r1,r3 ; r1=0x108
ld r4, @r1- || nop ; r1=0x106
ld r4, @r1- || nop ; r1=0x104
ld r4, @r1- || nop ; r1=0x102
ld r4, @r1- || nop ; r1=0x100
ld r4, @r1- || nop ; r1=0xFE
ld r4, @r1- || nop ; r1=0xFC
cmpeqi r1,#0xFC
brf0f _ERR
test_mod_inc_ld_dis:
mvtc r2, MOD_S
mvtc r3, MOD_E
mv r1,r2 ; r1=0x100
ld r4, @r1+ || nop ; r1=0x102
ld r4, @r1+ || nop ; r1=0x104
ld r4, @r1+ || nop ; r1=0x106
ld r4, @r1+ || nop ; r1=0x108
ld r4, @r1+ || nop ; r1=0x10A
ld r4, @r1+ || nop ; r1=0x10C
cmpeqi r1,#0x10C
brf0f _ERR
test_mod_dec_ld2w_dis:
mvtc r2, MOD_E
mvtc r3, MOD_S
mv r1,r3 ; r1=0x108
ld2W r4, @r1- || nop ; r1=0x104
ld2W r4, @r1- || nop ; r1=0x100
ld2W r4, @r1- || nop ; r1=0xFC
ld2W r4, @r1- || nop ; r1=0xF8
cmpeqi r1,#0xF8
brf0f _ERR
test_mod_inc_ld2w_dis:
mvtc r2, MOD_S
mvtc r3, MOD_E
mv r1,r2 ; r1=0x100
ld2W r4, @r1+ || nop ; r1=0x104
ld2W r4, @r1+ || nop ; r1=0x108
ld2W r4, @r1+ || nop ; r1=0x10C
ld2W r4, @r1+ || nop ; r1=0x110
cmpeqi r1,#0x110
brf0f _ERR
_OK:
exit0
_ERR:
exit47