123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #include "mem.h"
- #define SP R30
- TEXT _main(SB), $-8
- MOVQ $setSB(SB), R29
- MOVQ $edata(SB), R1
- MOVQ $end(SB), R2
- loop2:
- MOVQ R31, (R1)
- ADDQ $8, R1
- CMPUGT R1, R2, R3
- BEQ R3, loop2
- JSR main(SB)
- TEXT firmware(SB), $-8
- CALL_PAL $PALhalt
- MOVQ $_divq(SB), R31 /* touch _divq etc.; doesn't need to execute */
- MOVQ $_divl(SB), R31 /* touch _divl etc.; doesn't need to execute */
- RET
- TEXT mb(SB), $-8
- MB
- RET
- TEXT icflush(SB), $-8
- CALL_PAL $PALimb
- RET
- TEXT tlbflush(SB), $-8
- CALL_PAL $PALmtpr_tbia
- RET
- TEXT gendispatch(SB), $-8
- MOVQ 8(FP), R16
- MOVQ 16(FP), R17
- MOVQ 24(FP), R18
- MOVQ 32(FP), R19
- MOVQ 40(FP), R20
- MOVQ R26, R1
- JSR (R0)
- MOVQ R1, R26
- RET /* 7a bug: should be RET (R1) */
- TEXT rdv(SB), $-8
- MOVQ (R0), R0
- RET
- TEXT wrv(SB), $-8
- MOVQ 8(FP), R1
- MOVQ R1, (R0)
- RET
- TEXT ipl(SB), $-8
- CALL_PAL $PALmfpr_ipl
- RET
- TEXT mces(SB), $-8
- CALL_PAL $PALmfpr_mces
- RET
- TEXT setipl(SB), $-8
- MOVQ R0, R16
- CALL_PAL $PALmtpr_ipl
- RET
- TEXT setmces(SB), $-8
- MOVQ R0, R16
- CALL_PAL $PALmtpr_mces
- RET
- TEXT ldqp(SB), $-8
- MOVQ R0, R16
- CALL_PAL $PALldqp
- RET
- TEXT stqp(SB), $-8
- MOVQ R0, R16
- MOVQ 8(FP), R17
- CALL_PAL $PALstqp
- RET
- TEXT getptbr(SB), $-8
- CALL_PAL $PALmfpr_ptbr
- RET
- TEXT swppal(SB), $-8
- MOVQ R0, R16 /* which PALcode */
- MOVQ 8(FP), R17 /* new PC */
- MOVQ 16(FP), R18 /* PCBB (physical) */
- MOVQ 24(FP), R19 /* VPTB */
- MOVQ 32(FP), R20 /* new KSP */
- CALL_PAL $PALswppal
- RET
- TEXT pcc_cnt(SB), $-8
- MOVQ PCC, R1
- MOVL R1, R0
- RET
|