Kernel/x86 - Cleaning up dead code
[tpg/acess2.git] / Kernel / arch / x86 / proc.asm
index 4e7d160..00ea9e1 100644 (file)
@@ -55,11 +55,14 @@ SwitchTasks:
        
        ; Old IP
        mov eax, [esp+0x20+16]
+       test eax, eax
+       jz .nosave
        mov DWORD [eax], .restore
        ; Old SP
        mov eax, [esp+0x20+8]
        mov [eax], esp
 
+.nosave:
        mov ecx, [esp+0x20+12]  ; New IP
        mov eax, [esp+0x20+20]  ; New CR3
        mov esp, [esp+0x20+ 4]  ; New SP
@@ -73,7 +76,6 @@ SwitchTasks:
        jmp ecx
 
 .restore:
-
        popa
        xor eax, eax
        ret
@@ -162,8 +164,7 @@ SetAPICTimerCount:
        pop es
        pop ds
        popa
-       add esp, 4      ; CPU ID
-       ; No Error code / int num
+       add esp, 8      ; CPU ID / Error Code
        iret
 %endif
 ; --------------
@@ -376,3 +377,5 @@ User_Syscall_Exit:
        xor eax, eax
        mov ebx, [esp+4]
        int 0xAC
+
+; vim: ft=nasm ts=8

UCC git Repository :: git.ucc.asn.au