1#include "/sys/src/libc/9syscall/sys.h" 2 3/* 4 * we pass in the argument of the exec parameters as 0(FP) 5 */ 6 7TEXT main(SB),$8 8 9 MOVW $setR30(SB), R30 10 11 MOVW $boot(SB), R1 12 ADD $12, R29, R2 /* get a pointer to 0(FP) */ 13 MOVW R1, 4(R29) 14 MOVW R2, 8(R29) 15 JAL exec(SB) 16 17 MOVW $(1<<4), R1 18 MOVW R1, 4(R29) 19 MOVW $RFORK, R1 20 SYSCALL 21 MOVW $RFORK, R1 22 SYSCALL 23 MOVW $RFORK, R1 24 SYSCALL 25again: 26 ADDU $1, R2 27 MOVW $0, R1 /* print r1 */ 28 SYSCALL 29 MOVW $5000000, R3 30foo: 31 SUBU $1, R3 32 BNE R3, foo 33 JMP again 34 35TEXT exec(SB), $0 36 MOVW $EXEC, R1 37 SYSCALL 38 RET 39 40DATA boot+0(SB)/5,$"/boot" 41DATA boot+5(SB)/5,$"/boot" 42DATA bootv+0(SB)/4,$boot+6(SB) 43GLOBL boot+0(SB),$11 44GLOBL bootv+0(SB),$8 45