| ;; Print "pass\n" and 'exit 0' | |
| .macro pass | |
| .data | |
| mpass: | |
| .string "pass\n" | |
| .text | |
| _pass: | |
| mov %r1, mpass ; point to "pass\n" string | |
| mov %r2, 5 ; strlen mpass | |
| call 7 ; printk | |
| mov %r0, 0 ; | |
| exit ; exit 0 | |
| .endm | |
| ;;; MACRO fail | |
| ;;; Exit with status 1 | |
| .macro fail | |
| mov %r0, 1 | |
| exit | |
| .endm | |
| ;;; MACRO fail_ne32 | |
| ;;; Exit with status 1 if \reg32 != \val | |
| .macro fail_ne32 reg val | |
| jeq32 \reg, \val, 2 | |
| mov %r0, 1 | |
| exit | |
| .endm | |
| ;;; MACRO fail_ne | |
| ;;; Exit with status1 if \reg ne \val | |
| .macro fail_ne reg val | |
| lddw %r0, \val | |
| jeq \reg, %r0, 2 | |
| mov %r0, 1 | |
| exit | |
| .endm |