180ee5cbfSDavid du Colombier#define NPRIVATES 16 280ee5cbfSDavid du Colombier 380ee5cbfSDavid du ColombierTEXT _mainp(SB), 1, $(16 + NPRIVATES*4) 43e12c5d1SDavid du Colombier 53e12c5d1SDavid du Colombier MOVW $setR30(SB), R30 6*76a51bbfSDavid du Colombier /* _tos = arg */ 7e288d156SDavid du Colombier MOVW R1, _tos(SB) 880ee5cbfSDavid du Colombier 980ee5cbfSDavid du Colombier MOVW $p-64(SP), R1 1080ee5cbfSDavid du Colombier MOVW R1, _privates(SB) 1180ee5cbfSDavid du Colombier MOVW $NPRIVATES, R1 1280ee5cbfSDavid du Colombier MOVW R1, _nprivates(SB) 1380ee5cbfSDavid du Colombier 14*76a51bbfSDavid du Colombier /* _profmain(); */ 153e12c5d1SDavid du Colombier JAL _profmain(SB) 16*76a51bbfSDavid du Colombier /* _tos->prof.pp = _tos->prof.next; */ 17*76a51bbfSDavid du Colombier MOVW _tos(SB), R1 18*76a51bbfSDavid du Colombier MOVW 4(R1), R2 19*76a51bbfSDavid du Colombier MOVW R2, 0(R1) 20*76a51bbfSDavid du Colombier /* main(argc, argv); */ 213e12c5d1SDavid du Colombier MOVW inargc-4(FP), R1 223e12c5d1SDavid du Colombier MOVW $inargv+0(FP), R2 233e12c5d1SDavid du Colombier MOVW R1, 4(R29) 243e12c5d1SDavid du Colombier MOVW R2, 8(R29) 253e12c5d1SDavid du Colombier JAL main(SB) 263e12c5d1SDavid du Colombierloop: 273e12c5d1SDavid du Colombier MOVW $exits<>(SB), R1 283e12c5d1SDavid du Colombier MOVW R1, 4(R29) 293e12c5d1SDavid du Colombier JAL exits(SB) 303e12c5d1SDavid du Colombier MOVW $_profin(SB), R0 /* force loading of profile */ 313e12c5d1SDavid du Colombier JMP loop 323e12c5d1SDavid du Colombier 333e12c5d1SDavid du ColombierTEXT _savearg(SB), 1, $0 343e12c5d1SDavid du Colombier RET 353e12c5d1SDavid du Colombier 363e12c5d1SDavid du ColombierTEXT _callpc(SB), 1, $0 373e12c5d1SDavid du Colombier MOVW argp-4(FP), R1 383e12c5d1SDavid du Colombier RET 393e12c5d1SDavid du Colombier 403e12c5d1SDavid du ColombierDATA exits<>+0(SB)/4, $"main" 413e12c5d1SDavid du ColombierGLOBL exits<>+0(SB), $5 42