summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-04-30 18:13:13 +0000
committerpeter <peter@FreeBSD.org>2003-04-30 18:13:13 +0000
commit44164f81780c996180a1b01c5723211d18661e28 (patch)
tree11d4babbf4a779096e85346499327928a54dfab7 /lib
parent0b2f0dc371819e7bddf414569bb64b90cdd8e457 (diff)
downloadFreeBSD-src-44164f81780c996180a1b01c5723211d18661e28.zip
FreeBSD-src-44164f81780c996180a1b01c5723211d18661e28.tar.gz
Update for AMD64 (repocopied from i386/sys/Ovfork.S - why is it O?)
Depend on %rsi being preserved across the "syscall"-style syscall and strip out the PIC stuff (this cpu has full PC-relative addressing, at last!)
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