1*12b1df16SDavid du Colombier#define NPRIVATES 16 2*12b1df16SDavid du Colombier 3*12b1df16SDavid du ColombierTEXT _mainp(SB), 1, $(16 + NPRIVATES*4) 4*12b1df16SDavid du Colombier 5*12b1df16SDavid du Colombier MOVW $setR30(SB), R30 6*12b1df16SDavid du Colombier /* _tos = arg */ 7*12b1df16SDavid du Colombier MOVW R1, _tos(SB) 8*12b1df16SDavid du Colombier 9*12b1df16SDavid du Colombier MOVW $p-64(SP), R1 10*12b1df16SDavid du Colombier MOVW R1, _privates(SB) 11*12b1df16SDavid du Colombier MOVW $NPRIVATES, R1 12*12b1df16SDavid du Colombier MOVW R1, _nprivates(SB) 13*12b1df16SDavid du Colombier 14*12b1df16SDavid du Colombier /* _profmain(); */ 15*12b1df16SDavid du Colombier JAL _profmain(SB) 16*12b1df16SDavid du Colombier /* _tos->prof.pp = _tos->prof.next; */ 17*12b1df16SDavid du Colombier MOVW _tos(SB), R1 18*12b1df16SDavid du Colombier MOVW 4(R1), R2 19*12b1df16SDavid du Colombier MOVW R2, 0(R1) 20*12b1df16SDavid du Colombier /* main(argc, argv); */ 21*12b1df16SDavid du Colombier MOVW inargc-4(FP), R1 22*12b1df16SDavid du Colombier MOVW $inargv+0(FP), R2 23*12b1df16SDavid du Colombier MOVW R1, 4(R29) 24*12b1df16SDavid du Colombier MOVW R2, 8(R29) 25*12b1df16SDavid du Colombier JAL main(SB) 26*12b1df16SDavid du Colombierloop: 27*12b1df16SDavid du Colombier MOVW $exits<>(SB), R1 28*12b1df16SDavid du Colombier MOVW R1, 4(R29) 29*12b1df16SDavid du Colombier JAL exits(SB) 30*12b1df16SDavid du Colombier MOVW $_profin(SB), R0 /* force loading of profile */ 31*12b1df16SDavid du Colombier JMP loop 32*12b1df16SDavid du Colombier 33*12b1df16SDavid du ColombierTEXT _savearg(SB), 1, $0 34*12b1df16SDavid du Colombier RET 35*12b1df16SDavid du Colombier 36*12b1df16SDavid du ColombierTEXT _callpc(SB), 1, $0 37*12b1df16SDavid du Colombier MOVW argp-4(FP), R1 38*12b1df16SDavid du Colombier RET 39*12b1df16SDavid du Colombier 40*12b1df16SDavid du ColombierDATA exits<>+0(SB)/4, $"main" 41*12b1df16SDavid du ColombierGLOBL exits<>+0(SB), $5 42