75 lines
912 B
PHP
75 lines
912 B
PHP
|
# r0-r5 are used as tmps, consider them call clobbered by these macros.
|
||
|
|
||
|
.macro START
|
||
|
.data
|
||
|
failmsg:
|
||
|
.ascii "fail\n"
|
||
|
passmsg:
|
||
|
.ascii "pass\n"
|
||
|
.text
|
||
|
.global _START
|
||
|
_START:
|
||
|
.global _start
|
||
|
_start:
|
||
|
.endm
|
||
|
|
||
|
.macro exit rc
|
||
|
movw $\rc,r2
|
||
|
movw $0x410,r0
|
||
|
excp 8
|
||
|
.endm
|
||
|
|
||
|
.macro pass
|
||
|
movw $1, r2
|
||
|
movd $passmsg,(r4,r3)
|
||
|
movw $5, r5
|
||
|
movw $0x404, r0
|
||
|
excp 8
|
||
|
exit 0
|
||
|
.endm
|
||
|
|
||
|
.macro fail
|
||
|
movw $1, r2
|
||
|
movd $failmsg,(r4,r3)
|
||
|
movw $5, r5
|
||
|
movw $0x404, r0
|
||
|
excp 8
|
||
|
exit 1
|
||
|
.endm
|
||
|
|
||
|
# Other macros know this only clobbers r0.
|
||
|
.macro test_h_gr reg, val
|
||
|
movw $\val,r0
|
||
|
cmpw \reg, r0
|
||
|
beq test_gr
|
||
|
fail
|
||
|
test_gr:
|
||
|
.endm
|
||
|
|
||
|
.macro test_h_grp regp, val
|
||
|
movd $\val,(r1,r0)
|
||
|
cmpd \regp,(r1,r0)
|
||
|
beq test_grp
|
||
|
fail
|
||
|
test_grp:
|
||
|
.endm
|
||
|
|
||
|
|
||
|
.macro mvi_h_condbit val
|
||
|
movw $0, r0
|
||
|
movw $\val, r1
|
||
|
cmpw r0, r1
|
||
|
.endm
|
||
|
|
||
|
.macro test_h_condbit val
|
||
|
.if \val
|
||
|
br test_c1
|
||
|
fail
|
||
|
test_c1:
|
||
|
.else
|
||
|
br test_c0
|
||
|
fail
|
||
|
test_c0:
|
||
|
.endif
|
||
|
.endm
|