summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/frv/vfork.S
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-05-14 10:59:09 +0000
committerEric Andersen <andersen@codepoet.org>2004-05-14 10:59:09 +0000
commit297b6bb585320c9ee650258fb3d3e7e812cdc5a8 (patch)
tree5f2ef14066df9438b6fae31b949a03b5f82cf356 /libc/sysdeps/linux/frv/vfork.S
parentcd411309b5af27b1a02f324174d1caad98bc0927 (diff)
Alexandre Oliva writes:
Here are a number of minor changes to FR-V-specific bits of the uClibc port: - I've adjusted the definition of _dl_mmap to cope with the fact that there will be a definition for an mmap2-only system. - We don't have COPY relocs, so optimize the copy reloc-related code away. - Change the page size to 16KiB, to match the ABI spec, and not a stale value I'd copied from a linker config file. Oops. - Fix error handling in clone and vfork; parts of the changes by David Howells <dhowells@redhat.com> - Rearrange includes in crtreloc.c. - Change the API of __syscall_error, to reduce code size. - Improve __syscall_return in terms of code size, so as to enable tail-calling of __syscall_error, at least within libc. Ideally, __syscall_error should be hidden within libc.so, but this didn't work because of libdl. I haven't looked into why, and figured I'd leave it visible for now. - Rename enumerators and macros in sys/ucontext.h to reduce namespace pollution.
Diffstat (limited to 'libc/sysdeps/linux/frv/vfork.S')
-rw-r--r--libc/sysdeps/linux/frv/vfork.S19
1 files changed, 10 insertions, 9 deletions
diff --git a/libc/sysdeps/linux/frv/vfork.S b/libc/sysdeps/linux/frv/vfork.S
index 0d5d6ea8d..230f2f820 100644
--- a/libc/sysdeps/linux/frv/vfork.S
+++ b/libc/sysdeps/linux/frv/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foudnation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foudnation, Inc.
This file is part of the GNU C Library.
Contributed by David Howells <dhowells@redhat.com>, 2003.
@@ -26,16 +26,17 @@
.type vfork,@function
/* int vfork(void) */
vfork:
- setlos #__NR_vfork, gr7
- tira gr0, #0
+ setlos.p #__NR_vfork, gr7
+ setlos #-4096, gr4
+ tra gr0, gr0
- cmp gr8, gr0, icc0
- bplr icc0, #2
+ cmp gr8, gr4, icc0
+ blslr icc0, #2
- sethi.p #gotofffuncdeschi(__syscall_error), gr14
- setlo #gotofffuncdesclo(__syscall_error), gr14
- ldd @(gr14, gr15), gr14
- jmpl @(gr14, gr0)
+ sethi.p #gotofffuncdeschi(__syscall_error), gr14
+ setlo #gotofffuncdesclo(__syscall_error), gr14
+ ldd @(gr14, gr15), gr14
+ jmpl @(gr14, gr0)
.size vfork,.-vfork