180ee5cbfSDavid du Colombier#define NPRIVATES 16 280ee5cbfSDavid du Colombier 380ee5cbfSDavid du ColombierTEXT _mainp(SB), 1, $(16 + NPRIVATES*4) 47dd7cddfSDavid du Colombier 57dd7cddfSDavid du Colombier MOVW $setSB(SB), R2 6*e288d156SDavid du Colombier MOVW R3, _tos(SB) 780ee5cbfSDavid du Colombier 89a747e4fSDavid du Colombier MOVW $p-64(SP), R4 99a747e4fSDavid du Colombier MOVW R4, _privates+0(SB) 109a747e4fSDavid du Colombier MOVW $16, R4 119a747e4fSDavid du Colombier MOVW R4, _nprivates+0(SB) 1280ee5cbfSDavid du Colombier 137dd7cddfSDavid du Colombier BL _profmain(SB) 14*e288d156SDavid du Colombier MOVW _tos(SB), R3 15*e288d156SDavid du Colombier MOVW 4(R3), R4 16*e288d156SDavid du Colombier MOVW R4, 0(R3) 177dd7cddfSDavid du Colombier MOVW inargc-4(FP), R3 187dd7cddfSDavid du Colombier MOVW $inargv+0(FP), R4 197dd7cddfSDavid du Colombier MOVW R3, 4(R1) 207dd7cddfSDavid du Colombier MOVW R4, 8(R1) 217dd7cddfSDavid du Colombier BL main(SB) 227dd7cddfSDavid du Colombierloop: 237dd7cddfSDavid du Colombier MOVW $exits<>(SB), R3 247dd7cddfSDavid du Colombier MOVW R3, 4(R1) 257dd7cddfSDavid du Colombier BL exits(SB) 267dd7cddfSDavid du Colombier MOVW $_profin(SB), R3 /* force loading of profile */ 277dd7cddfSDavid du Colombier BR loop 287dd7cddfSDavid du Colombier 297dd7cddfSDavid du ColombierTEXT _savearg(SB), 1, $0 307dd7cddfSDavid du Colombier RETURN 317dd7cddfSDavid du Colombier 327dd7cddfSDavid du ColombierTEXT _callpc(SB), 1, $0 337dd7cddfSDavid du Colombier MOVW argp-4(FP), R3 347dd7cddfSDavid du Colombier RETURN 357dd7cddfSDavid du Colombier 367dd7cddfSDavid du ColombierDATA exits<>+0(SB)/4, $"main" 377dd7cddfSDavid du ColombierGLOBL exits<>+0(SB), $5 38