summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/avr32/Makefile.arch6
-rw-r--r--libc/sysdeps/linux/avr32/__longjmp.S20
-rw-r--r--libc/sysdeps/linux/avr32/brk.c16
-rw-r--r--libc/sysdeps/linux/avr32/bsd-_setjmp.S14
-rw-r--r--libc/sysdeps/linux/avr32/bsd-setjmp.S14
-rw-r--r--libc/sysdeps/linux/avr32/clone.c34
-rw-r--r--libc/sysdeps/linux/avr32/crt1.S114
-rw-r--r--libc/sysdeps/linux/avr32/crti.S40
-rw-r--r--libc/sysdeps/linux/avr32/crtn.S24
-rw-r--r--libc/sysdeps/linux/avr32/mmap.c18
-rw-r--r--libc/sysdeps/linux/avr32/setjmp.S24
-rw-r--r--libc/sysdeps/linux/avr32/sigaction.c58
-rw-r--r--libc/sysdeps/linux/avr32/sigrestorer.S10
-rw-r--r--libc/sysdeps/linux/avr32/syscall.S70
-rw-r--r--libc/sysdeps/linux/avr32/vfork.S42
15 files changed, 252 insertions, 252 deletions
diff --git a/libc/sysdeps/linux/avr32/Makefile.arch b/libc/sysdeps/linux/avr32/Makefile.arch
index c71c3ce56..44fc01ebf 100644
--- a/libc/sysdeps/linux/avr32/Makefile.arch
+++ b/libc/sysdeps/linux/avr32/Makefile.arch
@@ -5,9 +5,9 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
-CSRC := brk.c clone.c mmap.c sigaction.c
+CSRC := brk.c clone.c mmap.c sigaction.c
-SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
- sigrestorer.S syscall.S vfork.S
+SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
+ sigrestorer.S syscall.S vfork.S
include $(top_srcdir)/libc/sysdeps/linux/Makefile.commonarch
diff --git a/libc/sysdeps/linux/avr32/__longjmp.S b/libc/sysdeps/linux/avr32/__longjmp.S
index 245611a46..6154bb2ac 100644
--- a/libc/sysdeps/linux/avr32/__longjmp.S
+++ b/libc/sysdeps/linux/avr32/__longjmp.S
@@ -6,16 +6,16 @@
* archive for more details.
*/
- .global __longjmp
- .type __longjmp,"function"
- .align 1
+ .global __longjmp
+ .type __longjmp,"function"
+ .align 1
__longjmp:
- ldm r12++, r0-r8,sp,lr
- mustr r8 /* restore status register (lower half) */
- cp r11, 0 /* can't return zero */
- frs
- moveq r11, 1
- retal r11
- .size __longjmp, . - __longjmp
+ ldm r12++, r0-r8,sp,lr
+ mustr r8 /* restore status register (lower half) */
+ cp r11, 0 /* can't return zero */
+ frs
+ moveq r11, 1
+ retal r11
+ .size __longjmp, . - __longjmp
libc_hidden_def(__longjmp)
diff --git a/libc/sysdeps/linux/avr32/brk.c b/libc/sysdeps/linux/avr32/brk.c
index d824c7cd0..a54b49a61 100644
--- a/libc/sysdeps/linux/avr32/brk.c
+++ b/libc/sysdeps/linux/avr32/brk.c
@@ -15,17 +15,17 @@ void *__curbrk attribute_hidden = 0;
int brk (void *addr)
{
- void *newbrk;
+ void *newbrk;
- newbrk = (void *)INLINE_SYSCALL(brk, 1, addr);
+ newbrk = (void *)INLINE_SYSCALL(brk, 1, addr);
- __curbrk = newbrk;
+ __curbrk = newbrk;
- if (newbrk < addr) {
- __set_errno (ENOMEM);
- return -1;
- }
+ if (newbrk < addr) {
+ __set_errno (ENOMEM);
+ return -1;
+ }
- return 0;
+ return 0;
}
libc_hidden_def(brk)
diff --git a/libc/sysdeps/linux/avr32/bsd-_setjmp.S b/libc/sysdeps/linux/avr32/bsd-_setjmp.S
index 867edd9c2..f23e73b86 100644
--- a/libc/sysdeps/linux/avr32/bsd-_setjmp.S
+++ b/libc/sysdeps/linux/avr32/bsd-_setjmp.S
@@ -6,11 +6,11 @@
* archive for more details.
*/
- /* This just does a tail-call to __sigsetjmp(env, 0) */
- .global _setjmp
- .type _setjmp,"function"
- .align 1
+ /* This just does a tail-call to __sigsetjmp(env, 0) */
+ .global _setjmp
+ .type _setjmp,"function"
+ .align 1
_setjmp:
- mov r11, 0
- bral HIDDEN_JUMPTARGET(__sigsetjmp)
- .size _setjmp, . - _setjmp
+ mov r11, 0
+ bral HIDDEN_JUMPTARGET(__sigsetjmp)
+ .size _setjmp, . - _setjmp
diff --git a/libc/sysdeps/linux/avr32/bsd-setjmp.S b/libc/sysdeps/linux/avr32/bsd-setjmp.S
index b9f483bda..5247ec368 100644
--- a/libc/sysdeps/linux/avr32/bsd-setjmp.S
+++ b/libc/sysdeps/linux/avr32/bsd-setjmp.S
@@ -6,11 +6,11 @@
* archive for more details.
*/
- /* This just does a tail-call to __sigsetjmp(env, 1) */
- .global setjmp
- .type setjmp,"function"
- .align 1
+ /* This just does a tail-call to __sigsetjmp(env, 1) */
+ .global setjmp
+ .type setjmp,"function"
+ .align 1
setjmp:
- mov r11, 1
- bral HIDDEN_JUMPTARGET(__sigsetjmp)
- .size setjmp, . - setjmp
+ mov r11, 1
+ bral HIDDEN_JUMPTARGET(__sigsetjmp)
+ .size setjmp, . - setjmp
diff --git a/libc/sysdeps/linux/avr32/clone.c b/libc/sysdeps/linux/avr32/clone.c
index c5f5a74a8..e43b0f3bf 100644
--- a/libc/sysdeps/linux/avr32/clone.c
+++ b/libc/sysdeps/linux/avr32/clone.c
@@ -16,26 +16,26 @@
*/
int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg)
{
- register int (*_fn)(void *arg) = fn;
- register void *_arg = arg;
- int err;
+ register int (*_fn)(void *arg) = fn;
+ register void *_arg = arg;
+ int err;
- /* Sanity check the arguments */
- err = -EINVAL;
- if (!fn)
- goto syscall_error;
- if (!child_stack)
- goto syscall_error;
+ /* Sanity check the arguments */
+ err = -EINVAL;
+ if (!fn)
+ goto syscall_error;
+ if (!child_stack)
+ goto syscall_error;
- err = INLINE_SYSCALL(clone, 2, flags, child_stack);
- if (err < 0)
- goto syscall_error;
- else if (err != 0)
- return err;
+ err = INLINE_SYSCALL(clone, 2, flags, child_stack);
+ if (err < 0)
+ goto syscall_error;
+ else if (err != 0)
+ return err;
- _exit(_fn(_arg));
+ _exit(_fn(_arg));
syscall_error:
- __set_errno (-err);
- return -1;
+ __set_errno (-err);
+ return -1;
}
diff --git a/libc/sysdeps/linux/avr32/crt1.S b/libc/sysdeps/linux/avr32/crt1.S
index 0f0a2e87d..ca1fa7a4c 100644
--- a/libc/sysdeps/linux/avr32/crt1.S
+++ b/libc/sysdeps/linux/avr32/crt1.S
@@ -6,12 +6,12 @@
* archive for more details.
*
* When we enter _start, the stack looks like this:
- * argc argument counter
- * argv[0] pointer to program name
- * argv[1..argc-1] pointers to program args
- * NULL
- * env[0..N] pointers to environment variables
- * NULL
+ * argc argument counter
+ * argv[0] pointer to program name
+ * argv[1..argc-1] pointers to program args
+ * NULL
+ * env[0..N] pointers to environment variables
+ * NULL
*
* r12 contains a function pointer to be registered with `atexit'.
* This is how the dynamic linker arranges to have DT_FINI functions
@@ -20,78 +20,78 @@
*
* We're going to call the following function:
* __uClibc_main(int (*main)(int, char **, char **), int argc,
- * char **argv, void (*app_init)(void), void (*app_fini)(void),
- * void (*rtld_fini)(void), void *stack_end)
+ * char **argv, void (*app_init)(void), void (*app_fini)(void),
+ * void (*rtld_fini)(void), void *stack_end)
*
* So we need to set up things as follows:
- * r12 = address of main
- * r11 = argc
- * r10 = &argv[0]
- * r9 = address of _init
- * r8 = address of _fini
- * sp[0] = whatever we got passed in r12
+ * r12 = address of main
+ * r11 = argc
+ * r10 = &argv[0]
+ * r9 = address of _init
+ * r8 = address of _fini
+ * sp[0] = whatever we got passed in r12
*/
#include <features.h>
- .text
- .global _start
- .type _start, @function
+ .text
+ .global _start
+ .type _start, @function
_start:
- /* Clear the frame pointer and link register since this is the outermost frame. */
- mov r7, 0
- mov lr, 0
+ /* Clear the frame pointer and link register since this is the outermost frame. */
+ mov r7, 0
+ mov lr, 0
- ld.w r11, sp++ /* argc */
- mov r10, sp /* &argv[0] */
+ ld.w r11, sp++ /* argc */
+ mov r10, sp /* &argv[0] */
- st.w --sp, r10 /* stack_end */
- st.w --sp, r12 /* rtld_fini */
+ st.w --sp, r10 /* stack_end */
+ st.w --sp, r12 /* rtld_fini */
#ifdef __PIC__
- lddpc r6, .L_GOT
+ lddpc r6, .L_GOT
.L_RGOT:
- rsub r6, pc
- lda.w r9, _init
- lda.w r8, _fini
- lda.w r12, main
+ rsub r6, pc
+ lda.w r9, _init
+ lda.w r8, _fini
+ lda.w r12, main
- /* Ok, now run uClibc's main() -- should not return */
- call __uClibc_main
+ /* Ok, now run uClibc's main() -- should not return */
+ call __uClibc_main
- .align 2
+ .align 2
.L_GOT:
- .long .L_RGOT - _GLOBAL_OFFSET_TABLE_
+ .long .L_RGOT - _GLOBAL_OFFSET_TABLE_
#else
- lddpc r9, __init_addr /* app_init */
- lddpc r8, __fini_addr /* app_fini */
- lddpc r12, __main_addr /* main */
+ lddpc r9, __init_addr /* app_init */
+ lddpc r8, __fini_addr /* app_fini */
+ lddpc r12, __main_addr /* main */
- /* Ok, now run uClibc's main() -- should not return */
- lddpc pc, ___uClibc_main_addr
+ /* Ok, now run uClibc's main() -- should not return */
+ lddpc pc, ___uClibc_main_addr
- .align 2
+ .align 2
__init_addr:
- .long _init
+ .long _init
__fini_addr:
- .long _fini
+ .long _fini
__main_addr:
- .long main
+ .long main
___uClibc_main_addr:
- .long __uClibc_main
+ .long __uClibc_main
#endif
- .size _start, . - _start
+ .size _start, . - _start
- /*
- * The LSB says we need this.
- */
- .section ".note.ABI-tag", "a"
- .align 4
- .long 2f - 1f /* namesz */
- .long 4f - 3f /* descsz */
- .long 1 /* type */
-1: .asciz "GNU" /* name */
-2: .align 4
-3: .long 0 /* Linux executable */
- .long 2,6,0 /* Earliest compatible kernel */
-4: .align 4
+ /*
+ * The LSB says we need this.
+ */
+ .section ".note.ABI-tag", "a"
+ .align 4
+ .long 2f - 1f /* namesz */
+ .long 4f - 3f /* descsz */
+ .long 1 /* type */
+1: .asciz "GNU" /* name */
+2: .align 4
+3: .long 0 /* Linux executable */
+ .long 2,6,0 /* Earliest compatible kernel */
+4: .align 4
diff --git a/libc/sysdeps/linux/avr32/crti.S b/libc/sysdeps/linux/avr32/crti.S
index 69b387cb8..660f47c49 100644
--- a/libc/sysdeps/linux/avr32/crti.S
+++ b/libc/sysdeps/linux/avr32/crti.S
@@ -1,26 +1,26 @@
- .section .init
- .align 2
- .global _init
- .type _init, @function
+ .section .init
+ .align 2
+ .global _init
+ .type _init, @function
_init:
- stm --sp, r6, lr
- lddpc r6, 2f
-1: rsub r6, pc
- rjmp 3f
- .align 2
-2: .long 1b - _GLOBAL_OFFSET_TABLE_
+ stm --sp, r6, lr
+ lddpc r6, 2f
+1: rsub r6, pc
+ rjmp 3f
+ .align 2
+2: .long 1b - _GLOBAL_OFFSET_TABLE_
3:
- .section .fini
- .align 2
- .global _fini
- .type _fini, @function
+ .section .fini
+ .align 2
+ .global _fini
+ .type _fini, @function
_fini:
- stm --sp, r6, lr
- lddpc r6, 2f
-1: rsub r6, pc
- rjmp 3f
- .align 2
-2: .long 1b - _GLOBAL_OFFSET_TABLE_
+ stm --sp, r6, lr
+ lddpc r6, 2f
+1: rsub r6, pc
+ rjmp 3f
+ .align 2
+2: .long 1b - _GLOBAL_OFFSET_TABLE_
3:
diff --git a/libc/sysdeps/linux/avr32/crtn.S b/libc/sysdeps/linux/avr32/crtn.S
index 02e1a8367..f7d104070 100644
--- a/libc/sysdeps/linux/avr32/crtn.S
+++ b/libc/sysdeps/linux/avr32/crtn.S
@@ -1,14 +1,14 @@
- .section .init
- .align 2
- .global _init
- .type _init, @function
- ldm sp++, r6, pc
- .size _init, . - _init
+ .section .init
+ .align 2
+ .global _init
+ .type _init, @function
+ ldm sp++, r6, pc
+ .size _init, . - _init
- .section .fini
- .align 2
- .global _fini
- .type _fini, @function
- ldm sp++, r6, pc
- .size _fini, . - _fini
+ .section .fini
+ .align 2
+ .global _fini
+ .type _fini, @function
+ ldm sp++, r6, pc
+ .size _fini, . - _fini
diff --git a/libc/sysdeps/linux/avr32/mmap.c b/libc/sysdeps/linux/avr32/mmap.c
index 80310a45f..2ee025a26 100644
--- a/libc/sysdeps/linux/avr32/mmap.c
+++ b/libc/sysdeps/linux/avr32/mmap.c
@@ -14,20 +14,20 @@
libc_hidden_proto(mmap)
static _syscall6(__ptr_t, mmap2, __ptr_t, addr, size_t, len, int, prot,
- int, flags, int, fd, __off_t, pgoff);
+ int, flags, int, fd, __off_t, pgoff);
__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
{
- unsigned long page_size = sysconf(_SC_PAGESIZE);
- unsigned long pgoff;
+ unsigned long page_size = sysconf(_SC_PAGESIZE);
+ unsigned long pgoff;
- if (offset & (page_size - 1)) {
- __set_errno(EINVAL);
- return MAP_FAILED;
- }
+ if (offset & (page_size - 1)) {
+ __set_errno(EINVAL);
+ return MAP_FAILED;
+ }
- pgoff = (unsigned long)offset >> (31 - __builtin_clz(page_size));
+ pgoff = (unsigned long)offset >> (31 - __builtin_clz(page_size));
- return mmap2(addr, len, prot, flags, fd, pgoff);
+ return mmap2(addr, len, prot, flags, fd, pgoff);
}
libc_hidden_def(mmap)
diff --git a/libc/sysdeps/linux/avr32/setjmp.S b/libc/sysdeps/linux/avr32/setjmp.S
index 77f80d277..7d0354be9 100644
--- a/libc/sysdeps/linux/avr32/setjmp.S
+++ b/libc/sysdeps/linux/avr32/setjmp.S
@@ -9,21 +9,21 @@
#define _ASM
#include <bits/setjmp.h>
- .text
+ .text
- .global __sigsetjmp
- .type __sigsetjmp,"function"
+ .global __sigsetjmp
+ .type __sigsetjmp,"function"
- .align 1
+ .align 1
__sigsetjmp:
- mustr r8
- stm r12, r0,r1,r2,r3,r4,r5,r6,r7,r8,sp,lr
+ mustr r8
+ stm r12, r0,r1,r2,r3,r4,r5,r6,r7,r8,sp,lr
- /*
- * Make a tail call to __sigjmp_save; it takes the same args
- * and is hidden so we don't need to mess around with the GOT.
- */
- rjmp __sigjmp_save
- .size __sigsetjmp, . - __sigsetjmp
+ /*
+ * Make a tail call to __sigjmp_save; it takes the same args
+ * and is hidden so we don't need to mess around with the GOT.
+ */
+ rjmp __sigjmp_save
+ .size __sigsetjmp, . - __sigsetjmp
libc_hidden_def(__sigsetjmp)
diff --git a/libc/sysdeps/linux/avr32/sigaction.c b/libc/sysdeps/linux/avr32/sigaction.c
index 03cc9a049..6dcca914c 100644
--- a/libc/sysdeps/linux/avr32/sigaction.c
+++ b/libc/sysdeps/linux/avr32/sigaction.c
@@ -11,7 +11,7 @@
#include <sys/syscall.h>
#include <bits/kernel_sigaction.h>
-#define SA_RESTORER 0x04000000
+#define SA_RESTORER 0x04000000
extern void __default_rt_sa_restorer(void);
libc_hidden_proto(memcpy)
@@ -21,35 +21,35 @@ libc_hidden_proto(memcpy)
* If oact is not NULL, put the old action for sig in *oact.
*/
int __libc_sigaction(int signum, const struct sigaction *act,
- struct sigaction *oldact)
+ struct sigaction *oldact)
{
- struct kernel_sigaction kact, koact;
- int result;
-
- if (act) {
- kact.k_sa_handler = act->sa_handler;
- memcpy(&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
- kact.sa_flags = act->sa_flags;
- if (kact.sa_flags & SA_RESTORER)
- kact.sa_restorer = act->sa_restorer;
- else
- kact.sa_restorer = __default_rt_sa_restorer;
- kact.sa_flags |= SA_RESTORER;
- }
-
- result = __syscall_rt_sigaction(signum, act ? __ptrvalue(&kact) : NULL,
- oldact ? __ptrvalue(&koact) : NULL,
- _NSIG / 8);
-
- if (oldact && result >= 0) {
- oldact->sa_handler = koact.k_sa_handler;
- memcpy(&oldact->sa_mask, &koact.sa_mask,
- sizeof(oldact->sa_mask));
- oldact->sa_flags = koact.sa_flags;
- oldact->sa_restorer = koact.sa_restorer;
- }
-
- return result;
+ struct kernel_sigaction kact, koact;
+ int result;
+
+ if (act) {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy(&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
+ kact.sa_flags = act->sa_flags;
+ if (kact.sa_flags & SA_RESTORER)
+ kact.sa_restorer = act->sa_restorer;
+ else
+ kact.sa_restorer = __default_rt_sa_restorer;
+ kact.sa_flags |= SA_RESTORER;
+ }
+
+ result = __syscall_rt_sigaction(signum, act ? __ptrvalue(&kact) : NULL,
+ oldact ? __ptrvalue(&koact) : NULL,
+ _NSIG / 8);
+
+ if (oldact && result >= 0) {
+ oldact->sa_handler = koact.k_sa_handler;
+ memcpy(&oldact->sa_mask, &koact.sa_mask,
+ sizeof(oldact->sa_mask));
+ oldact->sa_flags = koact.sa_flags;
+ oldact->sa_restorer = koact.sa_restorer;
+ }
+
+ return result;
}
#ifndef LIBC_SIGACTION
diff --git a/libc/sysdeps/linux/avr32/sigrestorer.S b/libc/sysdeps/linux/avr32/sigrestorer.S
index 03f8bb568..df6a1ba3a 100644
--- a/libc/sysdeps/linux/avr32/sigrestorer.S
+++ b/libc/sysdeps/linux/avr32/sigrestorer.S
@@ -7,9 +7,9 @@
*/
#include <sys/syscall.h>
- .global __default_rt_sa_restorer
- .type __default_rt_sa_restorer,"function"
- .align 1
+ .global __default_rt_sa_restorer
+ .type __default_rt_sa_restorer,"function"
+ .align 1
__default_rt_sa_restorer:
- mov r8, __NR_rt_sigreturn
- scall
+ mov r8, __NR_rt_sigreturn
+ scall
diff --git a/libc/sysdeps/linux/avr32/syscall.S b/libc/sysdeps/linux/avr32/syscall.S
index f14fcdb30..55c1b1fa2 100644
--- a/libc/sysdeps/linux/avr32/syscall.S
+++ b/libc/sysdeps/linux/avr32/syscall.S
@@ -7,65 +7,65 @@
*/
#include <features.h>
- .text
+ .text
- /*
- * long int syscall(long int sysno, ...)
- */
- .global syscall
- .type syscall, @function
- .align 2
+ /*
+ * long int syscall(long int sysno, ...)
+ */
+ .global syscall
+ .type syscall, @function
+ .align 2
syscall:
- stm --sp, r3,r5,r6,lr
- sub lr, sp, -16
- mov r8, r12
- ldm lr, r3,r5,r9-r12
- scall
- cp.w r12, -4095
- brlo .Ldone
+ stm --sp, r3,r5,r6,lr
+ sub lr, sp, -16
+ mov r8, r12
+ ldm lr, r3,r5,r9-r12
+ scall
+ cp.w r12, -4095
+ brlo .Ldone
#ifdef __PIC__
- lddpc r6, .Lgot
+ lddpc r6, .Lgot
.Lgotcalc:
- rsub r6, pc
+ rsub r6, pc
# ifdef __UCLIBC_HAS_THREADS__
- rsub r3, r12, 0
- mcall r6[__errno_location@got]
- st.w r12[0], r3
+ rsub r3, r12, 0
+ mcall r6[__errno_location@got]
+ st.w r12[0], r3
# else
- ld.w r3, r6[errno@got]
- neg r12
- st.w r3[0], r12
+ ld.w r3, r6[errno@got]
+ neg r12
+ st.w r3[0], r12
# endif
#else
# ifdef __UCLIBC_HAS_THREADS__
- rsub r3, r12, 0
- mcall .Lerrno_location
- st.w r12[0], r3
+ rsub r3, r12, 0
+ mcall .Lerrno_location
+ st.w r12[0], r3
# else
- lddpc r3, .Lerrno
- neg r12
- st.w r3[0], r12
+ lddpc r3, .Lerrno
+ neg r12
+ st.w r3[0], r12
# endif
#endif
- mov r12, -1
+ mov r12, -1
.Ldone:
- ldm sp++, r3,r5,r6,pc
+ ldm sp++, r3,r5,r6,pc
- .align 2
+ .align 2
#ifdef __PIC__
.Lgot:
- .long .Lgotcalc - _GLOBAL_OFFSET_TABLE_
+ .long .Lgotcalc - _GLOBAL_OFFSET_TABLE_
#else
# ifdef __UCLIBC_HAS_THREADS__
.Lerrno_location:
- .long __errno_location
+ .long __errno_location
# else
.Lerrno:
- .long errno
+ .long errno
# endif
#endif
- .size syscall, . - syscall
+ .size syscall, . - syscall
diff --git a/libc/sysdeps/linux/avr32/vfork.S b/libc/sysdeps/linux/avr32/vfork.S
index d25fbecdb..03ca99f65 100644
--- a/libc/sysdeps/linux/avr32/vfork.S
+++ b/libc/sysdeps/linux/avr32/vfork.S
@@ -20,39 +20,39 @@
#include <features.h>
#include <sys/syscall.h>
- .global __vfork
- .type __vfork,@function
- .align 1
+ .global __vfork
+ .type __vfork,@function
+ .align 1
__vfork:
- mov r8, __NR_vfork
- scall
- cp.w r12, -4096
- retls r12
+ mov r8, __NR_vfork
+ scall
+ cp.w r12, -4096
+ retls r12
- /* vfork failed, so we may use the stack freely */
- pushm r4-r7,lr
+ /* vfork failed, so we may use the stack freely */
+ pushm r4-r7,lr
#ifdef __PIC__
- lddpc r6, .L_GOT
- rsub r4, r12, 0
+ lddpc r6, .L_GOT
+ rsub r4, r12, 0
.L_RGOT:
- rsub r6, pc
- mcall r6[__errno_location@got]
+ rsub r6, pc
+ mcall r6[__errno_location@got]
#else
- rsub r4, r12, 0
- mcall .L__errno_location
+ rsub r4, r12, 0
+ mcall .L__errno_location
#endif
- st.w r12[0], r4
- popm r4-r7,pc,r12=-1
+ st.w r12[0], r4
+ popm r4-r7,pc,r12=-1
- .align 2
+ .align 2
#ifdef __PIC__
.L_GOT:
- .long .L_RGOT - _GLOBAL_OFFSET_TABLE_
+ .long .L_RGOT - _GLOBAL_OFFSET_TABLE_
#else
.L__errno_location:
- .long __errno_location
+ .long __errno_location
#endif
- .size __vfork, . - __vfork
+ .size __vfork, . - __vfork
weak_alias(__vfork,vfork)
libc_hidden_weak(vfork)