| plan 9 kernel history: overview | file list | diff list |
1991/0626/pc/l.s (diff list | history)
| 1991/0625/sys/src/9/pc/l.s:1,25 – 1991/0626/sys/src/9/pc/l.s:1,39 (short | long | prev | next) | ||
| 1991/0625 | #include "mem.h" | |
| 1991/0614 | ||
| 1991/0626 | /* * pointer to initial gdt (must be in first 64K of program) */ | |
| 1991/0625 | GLOBL gdtptr(SB),$6 | |
| 1991/0626 | DATA gdtptr+0(SB)/2, $(5*8) | |
| 1991/0625 | DATA gdtptr+2(SB)/4, $gdt(SB) | |
| 1991/0614 | /* | |
| 1991/0626 | * pointer to idt (must be in first 64K of program) */ GLOBL idtptr(SB),$6 DATA idtptr+0(SB)/2, $(6*8) DATA idtptr+2(SB)/4, $idt(SB) /* | |
| 1991/0622 | * boot processor | |
| 1991/0614 | */ TEXT start(SB),$0 | |
| 1991/0625 | CLI /* disable interrupts */ | |
| 1991/0626 | /* point CPU at the interrupt/trap table */ LEAL idtptr(SB),AX /* MOVL (AX),IDTR /**/ | |
| 1991/0625 | /* point data segment at low memory */ XORL AX,AX | |
| 1991/0626 | /* MOVW AX,DS /**/ | |
| 1991/0625 |
| |
| 1991/0626 | /* point CPU at the interrupt/trap table */ | |
| 1991/0625 | LEAL gdtptr(SB),AX | |
| 1991/0626 | /* MOVL (AX),GDTR /**/ | |
| 1991/0625 | ||
| 1991/0614 | CALL main(SB) /* never returns */ | |
| 1991/0625/sys/src/9/pc/l.s:132,143 – 1991/0626/sys/src/9/pc/l.s:146,157 | ||
| 1991/0623 | */ | |
| 1991/0622 | alltrap: | |
| 1991/0623 | ||
| 1991/0625 |
| |
| 1991/0626 | /* PUSHL DS /**/ | |
| 1991/0622 | PUSHAL | |
| 1991/0625 | MOVL $KDSEL, AX | |
| 1991/0626 | /* MOVW AX, DS /**/ | |
| 1991/0614 | CALL trap(SB) | |
| 1991/0622 | POPAL | |
| 1991/0625 |
| |
| 1991/0626 | /* POPL DS /**/ | |
| 1991/0625 | ADDL $8,SP /* pop the trap and error codes */ | |
| 1991/0622 | IRETL | |