| # 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 |