l.s 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #include "mem.h"
  2. #include "vmspal.h"
  3. #define SP R30
  4. TEXT _main(SB), $-8
  5. MOVQ $setSB(SB), R29
  6. MOVQ $edata(SB), R1
  7. MOVQ $end(SB), R2
  8. loop2:
  9. MOVQ R31, (R1)
  10. ADDQ $8, R1
  11. CMPUGT R1, R2, R3
  12. BEQ R3, loop2
  13. JSR main(SB)
  14. TEXT firmware(SB), $-8
  15. CALL_PAL $PALhalt
  16. MOVQ $_divq(SB), R31 /* touch _divq etc.; doesn't need to execute */
  17. MOVQ $_divl(SB), R31 /* touch _divl etc.; doesn't need to execute */
  18. RET
  19. TEXT mb(SB), $-8
  20. MB
  21. RET
  22. TEXT icflush(SB), $-8
  23. CALL_PAL $PALimb
  24. RET
  25. TEXT tlbflush(SB), $-8
  26. CALL_PAL $PALmtpr_tbia
  27. RET
  28. TEXT gendispatch(SB), $-8
  29. MOVQ 8(FP), R16
  30. MOVQ 16(FP), R17
  31. MOVQ 24(FP), R18
  32. MOVQ 32(FP), R19
  33. MOVQ 40(FP), R20
  34. MOVQ R26, R1
  35. JSR (R0)
  36. MOVQ R1, R26
  37. RET /* 7a bug: should be RET (R1) */
  38. TEXT rdv(SB), $-8
  39. MOVQ (R0), R0
  40. RET
  41. TEXT wrv(SB), $-8
  42. MOVQ 8(FP), R1
  43. MOVQ R1, (R0)
  44. RET
  45. TEXT ipl(SB), $-8
  46. CALL_PAL $PALmfpr_ipl
  47. RET
  48. TEXT mces(SB), $-8
  49. CALL_PAL $PALmfpr_mces
  50. RET
  51. TEXT setipl(SB), $-8
  52. MOVQ R0, R16
  53. CALL_PAL $PALmtpr_ipl
  54. RET
  55. TEXT setmces(SB), $-8
  56. MOVQ R0, R16
  57. CALL_PAL $PALmtpr_mces
  58. RET
  59. TEXT ldqp(SB), $-8
  60. MOVQ R0, R16
  61. CALL_PAL $PALldqp
  62. RET
  63. TEXT stqp(SB), $-8
  64. MOVQ R0, R16
  65. MOVQ 8(FP), R17
  66. CALL_PAL $PALstqp
  67. RET
  68. TEXT getptbr(SB), $-8
  69. CALL_PAL $PALmfpr_ptbr
  70. RET
  71. TEXT swppal(SB), $-8
  72. MOVQ R0, R16 /* which PALcode */
  73. MOVQ 8(FP), R17 /* new PC */
  74. MOVQ 16(FP), R18 /* PCBB (physical) */
  75. MOVQ 24(FP), R19 /* VPTB */
  76. MOVQ 32(FP), R20 /* new KSP */
  77. CALL_PAL $PALswppal
  78. RET
  79. TEXT pcc_cnt(SB), $-8
  80. MOVQ PCC, R1
  81. MOVL R1, R0
  82. RET