l.s 1.5 KB

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