127 lines
4.3 KiB
ArmAsm
127 lines
4.3 KiB
ArmAsm
|
.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
|
||
|
|
||
|
|
||
|
|