summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/amd64/sys/vfork.S9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/libc/amd64/sys/vfork.S b/lib/libc/amd64/sys/vfork.S
index 20ece5e..b3fc3cf 100644
--- a/lib/libc/amd64/sys/vfork.S
+++ b/lib/libc/amd64/sys/vfork.S
@@ -47,12 +47,11 @@ __FBSDID("$FreeBSD$");
.weak vfork
.set vfork,__sys_vfork
ENTRY(__sys_vfork)
- popl %ecx /* my rta into ecx */
- mov $SYS_vfork,%eax
+ popq %rsi /* fetch return address (%rsi preserved) */
+ mov $SYS_vfork,%rax
KERNCALL
jb 1f
- jmp *%ecx
+ jmp *%rsi
1:
- pushl %ecx
- PIC_PROLOGUE
+ pushq %rcx
jmp PIC_PLT(HIDENAME(cerror))
OpenPOWER on IntegriCloud