summaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd/i386/makecontext.S
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2013-05-19 02:00:35 +0200
committerThomas Schwinge <thomas@codesourcery.com>2013-05-19 02:00:35 +0200
commit018259d791f1ced4b2ced88c393cc74de15006ed (patch)
tree8d966421ab9ae6c0a0918e7487c9115bbb51e5ea /sysdeps/mach/hurd/i386/makecontext.S
parent5cb476e85cf964845c91ba564e7bcb6fbc8d03b1 (diff)
getcontext, makecontext, setcontext, swapcontext.
Not thoroughly tested, but manual testing as well as glibc tests look fine, and manual -lpthread testing also looks fine (within the given bounds for a new stack to be used with makecontext).
Diffstat (limited to 'sysdeps/mach/hurd/i386/makecontext.S')
-rw-r--r--sysdeps/mach/hurd/i386/makecontext.S8
1 files changed, 8 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/i386/makecontext.S b/sysdeps/mach/hurd/i386/makecontext.S
index 106b865066..7f3f6b0b90 100644
--- a/sysdeps/mach/hurd/i386/makecontext.S
+++ b/sysdeps/mach/hurd/i386/makecontext.S
@@ -24,6 +24,14 @@
ENTRY(__makecontext)
movl 4(%esp), %eax
+ subl $4, %esp
+ cfi_adjust_cfa_offset (4)
+ movl %eax, (%esp)
+ call HIDDEN_JUMPTARGET (__makecontext_helper)
+ addl $4, %esp
+ cfi_adjust_cfa_offset (-4)
+
+ movl 4(%esp), %eax
/* Load the address of the function we are supposed to run. */
movl 8(%esp), %ecx