1*272efad7SDavid du Colombier#define NPRIVATES 16 2*272efad7SDavid du Colombier 3*272efad7SDavid du ColombierGLOBL _tos(SB), $8 4*272efad7SDavid du ColombierGLOBL _privates(SB), $8 5*272efad7SDavid du ColombierGLOBL _nprivates(SB), $8 6*272efad7SDavid du Colombier 7*272efad7SDavid du ColombierTEXT _mainp(SB), 1, $(3*8+NPRIVATES*8) 8*272efad7SDavid du Colombier 9*272efad7SDavid du Colombier /* _tos = arg */ 10*272efad7SDavid du Colombier MOVQ AX, _tos(SB) 11*272efad7SDavid du Colombier LEAQ 8(SP), AX 12*272efad7SDavid du Colombier MOVQ AX, _privates(SB) 13*272efad7SDavid du Colombier MOVQ $NPRIVATES, _nprivates(SB) 14*272efad7SDavid du Colombier 15*272efad7SDavid du Colombier /* _profmain(); */ 16*272efad7SDavid du Colombier CALL _profmain(SB) 17*272efad7SDavid du Colombier 18*272efad7SDavid du Colombier /* _tos->prof.pp = _tos->prof.next; */ 19*272efad7SDavid du Colombier MOVQ _tos+0(SB),DX 20*272efad7SDavid du Colombier MOVQ 4(DX),CX 21*272efad7SDavid du Colombier MOVQ CX,(DX) 22*272efad7SDavid du Colombier 23*272efad7SDavid du Colombier CALL _envsetup(SB) 24*272efad7SDavid du Colombier 25*272efad7SDavid du Colombier /* main(argc, argv, environ); */ 26*272efad7SDavid du Colombier MOVL inargc-8(FP), RARG 27*272efad7SDavid du Colombier LEAQ inargv+0(FP), AX 28*272efad7SDavid du Colombier MOVQ AX, 8(SP) 29*272efad7SDavid du Colombier MOVQ environ(SB), AX 30*272efad7SDavid du Colombier MOVQ AX, 16(SP) 31*272efad7SDavid du Colombier CALL main(SB) 32*272efad7SDavid du Colombier 33*272efad7SDavid du Colombierloop: 34*272efad7SDavid du Colombier MOVL AX, RARG 35*272efad7SDavid du Colombier CALL exit(SB) 36*272efad7SDavid du Colombier MOVQ $_profin(SB), AX /* force loading of profile */ 37*272efad7SDavid du Colombier MOVL $0, AX 38*272efad7SDavid du Colombier JMP loop 39*272efad7SDavid du Colombier 40*272efad7SDavid du ColombierTEXT _savearg(SB), 1, $0 41*272efad7SDavid du Colombier RET 42*272efad7SDavid du Colombier 43*272efad7SDavid du ColombierTEXT _callpc(SB), 1, $0 44*272efad7SDavid du Colombier MOVQ 8(RARG), AX 45*272efad7SDavid du Colombier RET 46