ref: e969575d2e55eec89d3a2765b974e023123d8fa5
dir: /sys/src/9/omap/init9.s/
/* * This is the same as the C programme: * * void * main(char* argv0) * { * startboot(argv0, &argv0); * } * * It is in assembler because SB needs to be * set and doing this in C drags in too many * other routines. */ TEXT main(SB), 1, $8 MOVW $setR12(SB), R12 /* load the SB */ MOVW $boot(SB), R0 ADD $12, R13, R1 /* pointer to 0(FP) */ MOVW R0, 4(R13) /* pass argc, argv */ MOVW R1, 8(R13) BL startboot(SB) _loop: B _loop