summaryrefslogtreecommitdiff
path: root/swtch.S
diff options
context:
space:
mode:
Diffstat (limited to 'swtch.S')
-rw-r--r--swtch.S29
1 files changed, 0 insertions, 29 deletions
diff --git a/swtch.S b/swtch.S
deleted file mode 100644
index 63a7dcc..0000000
--- a/swtch.S
+++ /dev/null
@@ -1,29 +0,0 @@
-# Context switch
-#
-# void swtch(struct context **old, struct context *new);
-#
-# Save the current registers on the stack, creating
-# a struct context, and save its address in *old.
-# Switch stacks to new and pop previously-saved registers.
-
-.globl swtch
-swtch:
- movl 4(%esp), %eax
- movl 8(%esp), %edx
-
- # Save old callee-saved registers
- pushl %ebp
- pushl %ebx
- pushl %esi
- pushl %edi
-
- # Switch stacks
- movl %esp, (%eax)
- movl %edx, %esp
-
- # Load new callee-saved registers
- popl %edi
- popl %esi
- popl %ebx
- popl %ebp
- ret