Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 64 → Rev 65

/SPARTAN/trunk/arch/ia32/src/context.s
35,8 → 35,12
.global fpu_lazy_context_save
.global fpu_lazy_context_restore
 
 
## Save current CPU context
#
# save context of this CPU
# Save CPU context to the kernel_context variable
# pointed by the 1st argument. Returns 1 in EAX.
#
context_save:
push %ebx
 
58,9 → 62,13
xorl %eax,%eax # context_save returns 1
incl %eax
ret
 
 
## Restore current CPU context
#
# restore saved context on this CPU
# Restore CPU context from the kernel_context variable
# pointed by the 1st argument. Returns 0 in EAX.
#
context_restore:
movl 4(%esp),%eax # address of the kernel_context variable to restore context from
movl (%eax),%esp # ctx->sp -> %esp
77,5 → 85,3
movl %eax,(%esp) # ctx->pc -> saver's return %eip
xorl %eax,%eax # context_restore returns 0
ret