main9p.s 739 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #define NPRIVATES 16
  2. arg=0
  3. sp=13
  4. sb=12
  5. TEXT _mainp(SB), 1, $(16 + NPRIVATES*4)
  6. MOVW $setR12(SB), R(sb)
  7. MOVW R(arg), _tos(SB)
  8. MOVW $p-64(SP), R1
  9. MOVW R1, _privates(SB)
  10. MOVW $NPRIVATES, R1
  11. MOVW R1, _nprivates(SB)
  12. BL _profmain(SB)
  13. MOVW _tos(SB), R1
  14. MOVW 4(R1), R0
  15. MOVW R0, 0(R1)
  16. MOVW $inargv+0(FP), R(arg)
  17. MOVW R(arg), 8(R(sp))
  18. MOVW inargc-4(FP), R(arg)
  19. MOVW R(arg), 4(R(sp))
  20. BL main(SB)
  21. loop:
  22. MOVW $_exitstr<>(SB), R(arg)
  23. MOVW R(arg), 4(R(sp))
  24. BL exits(SB)
  25. MOVW $_div(SB), R(arg) /* force loading of div */
  26. MOVW $_profin(SB), R(arg) /* force loading of profile */
  27. B loop
  28. TEXT _savearg(SB), 1, $0
  29. RET
  30. TEXT _callpc(SB), 1, $-4
  31. MOVW 0(R13), R(arg)
  32. RET
  33. DATA _exitstr<>+0(SB)/4, $"main"
  34. GLOBL _exitstr<>+0(SB), $5