main9p.s 698 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #define NPRIVATES 16
  2. TEXT _mainp(SB), 1, $(8+NPRIVATES*4)
  3. /* _tos = arg */
  4. MOVL AX, _tos(SB)
  5. LEAL 8(SP), AX
  6. MOVL AX, _privates(SB)
  7. MOVL $NPRIVATES, _nprivates(SB)
  8. /* _profmain(); */
  9. CALL _profmain(SB)
  10. /* _tos->prof.pp = _tos->prof.next; */
  11. MOVL _tos+0(SB),DX
  12. MOVL 4(DX),CX
  13. MOVL CX,(DX)
  14. /* main(argc, argv); */
  15. MOVL inargc-4(FP), AX
  16. MOVL AX, 0(SP)
  17. LEAL inargv+0(FP), AX
  18. MOVL AX, 4(SP)
  19. CALL main(SB)
  20. loop:
  21. MOVL $_exits<>(SB), AX
  22. MOVL AX, 0(SP)
  23. CALL exits(SB)
  24. MOVL $_profin(SB), AX /* force loading of profile */
  25. JMP loop
  26. TEXT _savearg(SB), 1, $0
  27. RET
  28. TEXT _callpc(SB), 1, $0
  29. MOVL argp+0(FP), AX
  30. MOVL 4(AX), AX
  31. RET
  32. DATA _exits<>+0(SB)/4, $"main"
  33. GLOBL _exits<>+0(SB), $5