| plan 9 kernel history: overview | file list | diff list |
1994/0612/carrera/l.s (diff list | history)
| 1994/0611/sys/src/9/carrera/l.s:12,41 – 1994/0612/sys/src/9/carrera/l.s:12,32 (short | long | prev | next) | ||
| 1993/0903 | /* * R4000 instructions */ | |
| 1994/0610 |
| |
| 1993/0903 | #define LL(base, rt) WORD $((060<<26)|((base)<<21)|((rt)<<16)) #define SC(base, rt) WORD $((070<<26)|((base)<<21)|((rt)<<16)) | |
| 1994/0522 |
| |
| 1993/0903 | /* * Boot first processor */ TEXT start(SB), $-4 | |
| 1994/0610 |
| |
| 1993/0903 | MOVW $setR30(SB), R30 | |
| 1994/0524 | MOVW $(CU1|INTR7|INTR6|INTR5|INTR4|INTR3|INTR2|INTR1|INTR0), R1 | |
| 1993/0903 | MOVW R1, M(STATUS) WAIT | |
| 1994/0610 |
| |
| 1993/0903 | MOVW $TLBROFF, R1 MOVW R1, M(WIRED) | |
| 1994/0610 |
| |
| 1993/0903 | MOVW $((0x1C<<7)|(1<<24)), R1 MOVW R1, FCR31 /* permit only inexact and underflow */ | |
| 1994/0611/sys/src/9/carrera/l.s:57,75 – 1994/0612/sys/src/9/carrera/l.s:48,61 | ||
| 1993/0903 | MOVD F24, F18 MOVD F24, F20 MOVD F24, F22 | |
| 1994/0610 |
| |
| 1993/0903 | MOVW $MACHADDR, R(MACH) ADDU $(BY2PG-4), R(MACH), SP MOVW $0, R(USER) | |
| 1994/0610 |
| |
| 1993/0903 | MOVW R0, 0(R(MACH)) | |
| 1994/0610 |
| |
| 1993/0903 | MOVW $edata(SB), R1 MOVW $end(SB), R2 | |
| 1994/0610 |
| |
| 1993/0903 | clrbss: MOVB $0, (R1) | |
| 1994/0611/sys/src/9/carrera/l.s:93,99 – 1994/0612/sys/src/9/carrera/l.s:79,85 | ||
| 1993/0903 | MOVW M(STATUS), R4 WAIT AND $(~KMODEMASK), R4 | |
| 1994/0611 |
| |
| 1994/0612 | OR $(KUSER|EXL|IE|UX), R4 | |
| 1993/0903 | MOVW R4, M(STATUS) WAIT MOVW R1, SP | |
| 1994/0611/sys/src/9/carrera/l.s:384,397 – 1994/0612/sys/src/9/carrera/l.s:370,383 | ||
| 1993/0903 | MOVW 8(R27), R26 /* R26 = m->proc */ MOVW 8(R26), R27 /* R27 = m->proc->kstack */ | |
| 1994/0610 | MOVW SP, R26 /* save user sp */ | |
| 1994/0612 | ADDU $(KSTACK-UREGSIZE), R27, SP | |
| 1993/0903 | ||
| 1994/0610 |
| |
| 1994/0612 | MOVW R26, Ureg_sp(SP) /* user SP */ MOVV R31, Ureg_r31(SP) MOVV R30, Ureg_r30(SP) | |
| 1993/0903 | MOVW M(CAUSE), R26 | |
| 1994/0610 |
| |
| 1994/0612 | MOVV R(MACH), Ureg_r25(SP) MOVV R(USER), Ureg_r24(SP) | |
| 1993/0903 | AND $(EXCMASK<<2), R26 SUBU $(CSYS<<2), R26 | |
| 1994/0611/sys/src/9/carrera/l.s:407,419 – 1994/0612/sys/src/9/carrera/l.s:393,405 | ||
| 1993/0903 | JAL syscall(SB) sysrestore: | |
| 1994/0610 |
| |
| 1994/0612 | MOVV Ureg_r31(SP), R31 MOVW Ureg_status(SP), R26 MOVV Ureg_r30(SP), R30 | |
| 1993/0903 | MOVW R26, M(STATUS) WAIT | |
| 1994/0610 |
| |
| 1994/0612 | MOVW Ureg_pc(SP), R26 /* old pc */ MOVW Ureg_sp(SP), SP | |
| 1994/0610 | MOVW R26, M(EPC) | |
| 1993/0903 | ERET | |
| 1994/0611/sys/src/9/carrera/l.s:421,445 – 1994/0612/sys/src/9/carrera/l.s:407,434 | ||
| 1993/0903 | JAL trap(SB) restore: JAL restregs(SB) | |
| 1994/0610 |
| |
| 1994/0612 | MOVV Ureg_r31(SP), R31 MOVV Ureg_r30(SP), R30 MOVV Ureg_r25(SP), R(MACH) MOVV Ureg_r24(SP), R(USER) MOVW Ureg_sp(SP), SP | |
| 1994/0610 | MOVW R26, M(EPC) | |
| 1993/0903 | ERET waskernel: | |
| 1994/0609 |
| |
| 1994/0610 |
| |
| 1994/0612 | MOVW SP, R26 | |
| 1994/0610 | SUBU $UREGSIZE, SP | |
| 1994/0612 | OR $7, SP XOR $7, SP MOVW R26, Ureg_sp(SP) MOVV R31, Ureg_r31(SP) MOVW $1, R26 /* not syscall */ | |
| 1993/0903 | JAL saveregs(SB) MOVW 4(SP), R1 /* first arg for trap */ JAL trap(SB) JAL restregs(SB) | |
| 1994/0610 |
| |
| 1994/0612 | MOVV Ureg_r31(SP), R31 MOVW Ureg_sp(SP), SP | |
| 1994/0610 | MOVW R26, M(EPC) | |
| 1993/0903 | ERET | |
| 1994/0611/sys/src/9/carrera/l.s:448,468 – 1994/0612/sys/src/9/carrera/l.s:437,453 | ||
| 1993/0903 | JMP sysrestore TEXT saveregs(SB), $-4 | |
| 1994/0610 |
| |
| 1994/0612 | MOVV R1, Ureg_r1(SP) MOVV R2, Ureg_r2(SP) MOVV R5, Ureg_r5(SP) MOVV R6, Ureg_r6(SP) ADDU $Uoffset, SP, R1 MOVW R1, 4(SP) /* arg to base of regs */ | |
| 1993/0903 | MOVW M(STATUS), R1 | |
| 1994/0610 | MOVW M(EPC), R2 | |
| 1993/0903 | WAIT | |
| 1994/0610 |
| |
| 1994/0612 | MOVW R1, Ureg_status(SP) MOVW R2, Ureg_pc(SP) | |
| 1993/0903 | MOVW $(~KMODEMASK),R2 /* don't let him use R28 */ AND R2, R1 | |
| 1994/0611/sys/src/9/carrera/l.s:473,560 – 1994/0612/sys/src/9/carrera/l.s:458,537 | ||
| 1993/0903 | MOVW M(CAUSE), R1 | |
| 1994/0610 | MOVW M(BADVADDR), R2 | |
| 1993/0903 | NOOP | |
| 1994/0610 |
| |
| 1994/0612 | MOVW R1, Ureg_cause(SP) | |
| 1994/0610 | MOVW M(TLBVIRT), R1 | |
| 1993/0903 | NOOP | |
| 1994/0610 |
| |
| 1993/0903 |
| |
| 1994/0610 |
| |
| 1994/0612 | MOVW R2, Ureg_badvaddr(SP) MOVW R1, Ureg_tlbvirt(SP) MOVV HI, R1 MOVV LO, R2 MOVV R1, Ureg_hi(SP) MOVV R2, Ureg_lo(SP) | |
| 1993/0903 | /* LINK,SB,SP missing */ | |
| 1994/0610 |
| |
| 1994/0612 | MOVV R28, Ureg_r28(SP) | |
| 1993/0903 | /* R27, R26 not saved */ /* R25, R24 missing */ | |
| 1994/0610 |
| |
| 1994/0612 | MOVV R23, Ureg_r23(SP) MOVV R22, Ureg_r22(SP) MOVV R21, Ureg_r21(SP) MOVV R20, Ureg_r20(SP) MOVV R19, Ureg_r19(SP) MOVV R18, Ureg_r18(SP) MOVV R17, Ureg_r17(SP) MOVV R16, Ureg_r16(SP) MOVV R15, Ureg_r15(SP) MOVV R14, Ureg_r14(SP) MOVV R13, Ureg_r13(SP) MOVV R12, Ureg_r12(SP) MOVV R11, Ureg_r11(SP) MOVV R10, Ureg_r10(SP) MOVV R9, Ureg_r9(SP) MOVV R8, Ureg_r8(SP) MOVV R7, Ureg_r7(SP) MOVV R6, Ureg_r6(SP) MOVV R5, Ureg_r5(SP) MOVV R4, Ureg_r4(SP) MOVV R3, Ureg_r3(SP) | |
| 1993/0903 | return: RET TEXT restregs(SB), $-4 /* LINK,SB,SP missing */ | |
| 1994/0610 |
| |
| 1994/0612 | MOVV Ureg_r28(SP), R28 | |
| 1993/0903 | /* R27, R26 not saved */ /* R25, R24 missing */ | |
| 1994/0610 |
| |
| 1993/0903 |
| |
| 1994/0610 |
| |
| 1994/0612 | MOVV Ureg_r23(SP), R23 MOVV Ureg_r22(SP), R22 MOVV Ureg_r21(SP), R21 MOVV Ureg_r20(SP), R20 MOVV Ureg_r19(SP), R19 MOVV Ureg_r18(SP), R18 MOVV Ureg_r17(SP), R17 MOVV Ureg_r16(SP), R16 MOVV Ureg_r15(SP), R15 MOVV Ureg_r14(SP), R14 MOVV Ureg_r13(SP), R13 MOVV Ureg_r12(SP), R12 MOVV Ureg_r11(SP), R11 MOVV Ureg_r10(SP), R10 MOVV Ureg_r9(SP), R9 MOVV Ureg_r8(SP), R8 MOVV Ureg_r7(SP), R7 MOVV Ureg_r6(SP), R6 MOVV Ureg_r5(SP), R5 MOVV Ureg_r4(SP), R4 MOVV Ureg_r3(SP), R3 MOVV Ureg_lo(SP), R2 MOVV Ureg_hi(SP), R1 MOVV R2, LO MOVV R1, HI MOVW Ureg_status(SP), R1 MOVV Ureg_r2(SP), R2 | |
| 1993/0903 | MOVW R1, M(STATUS) WAIT | |
| 1994/0610 |
| |
| 1994/0612 | MOVV Ureg_r1(SP), R1 MOVW Ureg_pc(SP), R26 | |
| 1993/0903 | RET | |
| 1994/0610 | TEXT rfnote(SB), $0 | |