mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
Remove trailing whitespace in ports.
This commit is contained in:
parent
869378a5bf
commit
5556231db2
@ -1,3 +1,25 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/alpha/bits/atomic.h: Remove trailing whitespace.
|
||||
* sysdeps/alpha/div_libc.h: Likewise.
|
||||
* sysdeps/alpha/divq.S: Likewise.
|
||||
* sysdeps/alpha/divqu.S: Likewise.
|
||||
* sysdeps/alpha/fpu/cfloat-compat.h: Likewise.
|
||||
* sysdeps/alpha/fpu/s_roundf.c: Likewise.
|
||||
* sysdeps/alpha/fpu/s_trunc.c: Likewise.
|
||||
* sysdeps/alpha/fpu/s_truncf.c: Likewise.
|
||||
* sysdeps/alpha/ldiv.S: Likewise.
|
||||
* sysdeps/alpha/memchr.c: Likewise.
|
||||
* sysdeps/alpha/remq.S: Likewise.
|
||||
* sysdeps/alpha/remqu.S: Likewise.
|
||||
* sysdeps/alpha/stxncpy.S: Likewise.
|
||||
* sysdeps/unix/alpha/sysdep.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/kernel-features.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/kernel_stat.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/register-dump.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/alpha/syscall.S: Likewise.
|
||||
|
||||
2013-05-22 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (siginfo_t): Add
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/am33/elf/start.S: Remove trailing whitespace.
|
||||
* sysdeps/am33/fpu/fgetexcptflg.c: Likewise.
|
||||
|
||||
2013-05-01 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/am33/atomicity.h: Add missing #include <stdint.h> due to
|
||||
|
@ -1,3 +1,10 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/arm/machine-gmon.h: Remove trailing whitespace.
|
||||
* sysdeps/unix/sysv/linux/arm/mmap.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/swapcontext.S: Likewise.
|
||||
|
||||
2013-05-31 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/arm/Makefile [$(subdir) = malloc]
|
||||
|
@ -1,3 +1,45 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/hppa/configure.in: Remove trailing whitespace.
|
||||
* sysdeps/hppa/dl-fptr.c: Likewise.
|
||||
* sysdeps/hppa/dl-fptr.h: Likewise.
|
||||
* sysdeps/hppa/dl-irel.h: Likewise.
|
||||
* sysdeps/hppa/dl-trampoline.S: Likewise.
|
||||
* sysdeps/hppa/fpu/bits/fenv.h: Likewise.
|
||||
* sysdeps/hppa/fpu/fedisblxcpt.c: Likewise.
|
||||
* sysdeps/hppa/fpu/fegetenv.c: Likewise.
|
||||
* sysdeps/hppa/fpu/fegetexcept.c: Likewise.
|
||||
* sysdeps/hppa/fpu/feholdexcpt.c: Likewise.
|
||||
* sysdeps/hppa/fpu/fesetenv.c: Likewise.
|
||||
* sysdeps/hppa/fpu/fesetround.c: Likewise.
|
||||
* sysdeps/hppa/fpu/feupdateenv.c: Likewise.
|
||||
* sysdeps/hppa/fpu/fgetexcptflg.c: Likewise.
|
||||
* sysdeps/hppa/fpu/fraiseexcpt.c: Likewise.
|
||||
* sysdeps/hppa/fpu/ftestexcept.c: Likewise.
|
||||
* sysdeps/hppa/hppa1.1/addmul_1.S: Likewise.
|
||||
* sysdeps/hppa/hppa1.1/mul_1.S: Likewise.
|
||||
* sysdeps/hppa/hppa1.1/submul_1.S: Likewise.
|
||||
* sysdeps/hppa/hppa1.1/udiv_qrnnd.S: Likewise.
|
||||
* sysdeps/hppa/nptl/pthread_spin_init.c: Likewise.
|
||||
* sysdeps/hppa/nptl/pthread_spin_unlock.c: Likewise.
|
||||
* sysdeps/hppa/nptl/tls.h: Likewise.
|
||||
* sysdeps/hppa/rshift.S: Likewise.
|
||||
* sysdeps/hppa/start.S: Likewise.
|
||||
* sysdeps/hppa/sysdep.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/clone.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/internaltypes.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/makecontext.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/mmap.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/nptl/pthreadP.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/setcontext.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
|
||||
* sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
|
||||
|
||||
2013-05-29 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #15465]
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list:
|
||||
Remove trailing whitespace.
|
||||
|
||||
2013-01-02 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* All files with FSF copyright notices: Update copyright dates
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/m68k/socket.S: Remove trailing
|
||||
whitespace.
|
||||
|
||||
2013-05-29 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #15465]
|
||||
|
@ -1,3 +1,17 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/mips/fpu/fgetexcptflg.c: Remove trailing whitespace.
|
||||
* sysdeps/mips/fpu/fraiseexcpt.c: Likewise.
|
||||
* sysdeps/mips/memset.S: Likewise.
|
||||
* sysdeps/mips/mips64/bsd-_setjmp.S: Likewise.
|
||||
* sysdeps/mips/mips64/bsd-setjmp.S: Likewise.
|
||||
* sysdeps/mips/mips64/memset.S: Likewise.
|
||||
* sysdeps/mips/mips64/setjmp.S: Likewise.
|
||||
* sysdeps/mips/start.S: Likewise.
|
||||
* sysdeps/unix/mips/sysdep.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/mips/dl-static.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h: Likewise.
|
||||
|
||||
2013-05-29 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #15465]
|
||||
|
@ -1,3 +1,14 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/powerpc/nofpu/fenv_const.c: Remove trailing whitespace.
|
||||
* sysdeps/powerpc/nofpu/fenv_libc.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S:
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S:
|
||||
Likewise.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S:
|
||||
Likewise.
|
||||
|
||||
2013-05-22 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/powerpc/nofpu/libm-test-ulps: Update test names.
|
||||
|
@ -1,3 +1,10 @@
|
||||
2013-06-05 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/tile/tilepro/memcpy.S: Remove trailing whitespace.
|
||||
* sysdeps/unix/sysv/linux/tile/nptl/clone.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/tile/setcontext.S: Likewise.
|
||||
* sysdeps/unix/sysv/linux/tile/swapcontext.S: Likewise.
|
||||
|
||||
2013-05-29 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
[BZ #15465]
|
||||
|
@ -347,7 +347,7 @@ typedef uintmax_t uatomic_max_t;
|
||||
: "memory"); \
|
||||
__ret; })
|
||||
|
||||
/* ??? Barrier semantics for atomic_exchange_and_add appear to be
|
||||
/* ??? Barrier semantics for atomic_exchange_and_add appear to be
|
||||
undefined. Use full barrier for now, as that's safe. */
|
||||
#define atomic_exchange_and_add(mem, value) \
|
||||
__atomic_val_bysize (__arch_exchange_and_add, int, mem, value, __MB, __MB)
|
||||
|
@ -34,7 +34,7 @@
|
||||
#define RA t9
|
||||
|
||||
/* The secureplt format does not allow the division routines to be called
|
||||
via plt; there aren't enough registers free to be clobbered. Avoid
|
||||
via plt; there aren't enough registers free to be clobbered. Avoid
|
||||
setting the symbol type to STT_FUNC, so that the linker won't be tempted
|
||||
to create a plt entry. */
|
||||
#define funcnoplt notype
|
||||
|
@ -192,7 +192,7 @@ $q_high:
|
||||
br $q_high_ret
|
||||
|
||||
.align 4
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
current remainder (R) and add that to the existing quotient (Q).
|
||||
The expectation, of course, is that R is much smaller than X. */
|
||||
/* Begin with a shift-up loop. Compute S such that Y*S >= R. We
|
||||
|
@ -206,7 +206,7 @@ $q_high:
|
||||
br $q_high_ret
|
||||
|
||||
.align 4
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
current remainder (R) and add that to the existing quotient (Q).
|
||||
The expectation, of course, is that R is much smaller than X. */
|
||||
/* Begin with a shift-up loop. Compute S such that Y*S >= R. We
|
||||
|
@ -16,7 +16,7 @@
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* The behaviour of complex float changed between GCC 3.3 and 3.4.
|
||||
/* The behaviour of complex float changed between GCC 3.3 and 3.4.
|
||||
|
||||
In 3.3 and before (below, complex version 1, or "c1"), complex float
|
||||
values were packed into one floating point register.
|
||||
|
@ -25,7 +25,7 @@ __roundf (float x)
|
||||
const float almost_half = 0x1.fffffep-2;
|
||||
const float two23 = 0x1.0p23;
|
||||
float r, tmp;
|
||||
|
||||
|
||||
__asm (
|
||||
#ifdef _IEEE_FP_INEXACT
|
||||
"adds/suic %2, %3, %1\n\tsubs/suic %1, %3, %0"
|
||||
|
@ -27,7 +27,7 @@ __trunc (double x)
|
||||
{
|
||||
double two52 = copysign (0x1.0p52, x);
|
||||
double r, tmp;
|
||||
|
||||
|
||||
__asm (
|
||||
#ifdef _IEEE_FP_INEXACT
|
||||
"addt/suic %2, %3, %1\n\tsubt/suic %1, %3, %0"
|
||||
|
@ -26,7 +26,7 @@ __truncf (float x)
|
||||
{
|
||||
float two23 = copysignf (0x1.0p23, x);
|
||||
float r, tmp;
|
||||
|
||||
|
||||
__asm (
|
||||
#ifdef _IEEE_FP_INEXACT
|
||||
"adds/suic %2, %3, %1\n\tsubs/suic %1, %3, %0"
|
||||
|
@ -150,7 +150,7 @@ $q_high:
|
||||
br $q_high_ret
|
||||
|
||||
.align 4
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
current remainder (R) and add that to the existing quotient (Q).
|
||||
The expectation, of course, is that R is much smaller than X. */
|
||||
/* Begin with a shift-up loop. Compute S such that Y*S >= R. We
|
||||
|
@ -115,7 +115,7 @@ __memchr (const void *s, int xc, size_t n)
|
||||
s_align++; \
|
||||
n -= 64; \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* While there's still lots more data to potentially be read,
|
||||
continue issuing prefetches for the 4th cacheline out. */
|
||||
while (n >= 256)
|
||||
|
@ -193,7 +193,7 @@ $q_high:
|
||||
br $q_high_ret
|
||||
|
||||
.align 4
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
current remainder (R) and add that to the existing quotient (Q).
|
||||
The expectation, of course, is that R is much smaller than X. */
|
||||
/* Begin with a shift-up loop. Compute S such that Y*S >= R. We
|
||||
|
@ -211,7 +211,7 @@ $q_high:
|
||||
br $q_high_ret
|
||||
|
||||
.align 4
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
/* The quotient that we computed was too small. Divide Y by the
|
||||
current remainder (R) and add that to the existing quotient (Q).
|
||||
The expectation, of course, is that R is much smaller than X. */
|
||||
/* Begin with a shift-up loop. Compute S such that Y*S >= R. We
|
||||
|
@ -172,7 +172,7 @@ $u_head:
|
||||
or t0, t6, t6 # e1 : mask original data for zero test
|
||||
cmpbge zero, t6, t7 # e0 :
|
||||
beq a2, $u_eocfin # .. e1 :
|
||||
lda t6, -1 # e0 :
|
||||
lda t6, -1 # e0 :
|
||||
bne t7, $u_final # .. e1 :
|
||||
|
||||
mskql t6, a1, t6 # e0 : mask out bits already seen
|
||||
@ -270,7 +270,7 @@ $u_final:
|
||||
1: stq_u t0, 0(a0) # e0 :
|
||||
ret (t9) # .. e1 :
|
||||
|
||||
/* Got to end-of-count before end of string.
|
||||
/* Got to end-of-count before end of string.
|
||||
On entry to this basic block:
|
||||
t1 == the shifted high-order bits from the previous source word */
|
||||
$u_eoc:
|
||||
|
@ -46,8 +46,8 @@ _start:
|
||||
later in __libc_start_main. */
|
||||
mov sp,a3
|
||||
add -32,sp
|
||||
|
||||
mov a3,(28,sp) /* stack_end. */
|
||||
|
||||
mov a3,(28,sp) /* stack_end. */
|
||||
mov d0,(24,sp) /* rtld_fini. */
|
||||
mov _fini, d3
|
||||
mov d3,(20,sp) /* fini. */
|
||||
@ -55,7 +55,7 @@ _start:
|
||||
mov d2,(16,sp) /* init. */
|
||||
inc4 a3
|
||||
mov a3,(12,sp) /* argv. */
|
||||
|
||||
|
||||
/* Set the initial frame pointer as 0, so that the bottom of
|
||||
the stack is clearly marked. */
|
||||
mov 0,a3
|
||||
|
@ -30,7 +30,7 @@ __fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
/* Get the current exceptions. */
|
||||
_FPU_GETCW (temp);
|
||||
|
||||
/* We only save the relevant bits here. In particular, care has to be
|
||||
/* We only save the relevant bits here. In particular, care has to be
|
||||
taken with the CAUSE bits, as an inadvertent restore later on could
|
||||
generate unexpected exceptions. */
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
/* GCC for the ARM cannot compile __builtin_return_address(N) for N != 0,
|
||||
/* GCC for the ARM cannot compile __builtin_return_address(N) for N != 0,
|
||||
so we must use an assembly stub. */
|
||||
|
||||
/* We must not pollute the global namespace. */
|
||||
|
@ -26,11 +26,11 @@ AC_CACHE_CHECK(for hppa TLS support, libc_cv_hppa_tls, [dnl
|
||||
cat > conftest.s <<\EOF
|
||||
; Setup tls data
|
||||
.section ".tdata","awT",@progbits
|
||||
foo: .data 32
|
||||
foo: .data 32
|
||||
.text
|
||||
; Test general dyanmic relocations
|
||||
test0:
|
||||
addil LT'foo-$tls_gdidx$, %r19
|
||||
addil LT'foo-$tls_gdidx$, %r19
|
||||
ldo RT'foo-$tls_gdidx$(%r1), %r26
|
||||
b __tls_get_addr
|
||||
nop
|
||||
@ -50,7 +50,7 @@ test2:
|
||||
; Test local exec relocations
|
||||
test3:
|
||||
mfctl %cr27, %r26
|
||||
addil LR'foo-$tls_leoff$, %r26
|
||||
addil LR'foo-$tls_leoff$, %r26
|
||||
ldo RR'foo-$tls_leoff$(%r1), %r25
|
||||
; Done all the TLS tests.
|
||||
EOF
|
||||
|
@ -99,7 +99,7 @@ new_fdesc_table (struct local *l, size_t *size)
|
||||
}
|
||||
|
||||
/* Must call _dl_fptr_init before using any other function. */
|
||||
void
|
||||
void
|
||||
_dl_fptr_init (void)
|
||||
{
|
||||
struct local *l;
|
||||
|
@ -26,7 +26,7 @@ extern void _dl_fptr_init (void);
|
||||
|
||||
/* There are currently 33 dynamic symbols in ld.so.
|
||||
ELF_MACHINE_BOOT_FPTR_TABLE_LEN needs to be at least that big. */
|
||||
#define ELF_MACHINE_BOOT_FPTR_TABLE_LEN 64
|
||||
#define ELF_MACHINE_BOOT_FPTR_TABLE_LEN 64
|
||||
|
||||
#define ELF_MACHINE_LOAD_ADDRESS(var, symbol) \
|
||||
asm ( \
|
||||
|
@ -30,7 +30,7 @@
|
||||
/* Implement enough to get the build going again. */
|
||||
#warning "NEED STT_GNU_IFUNC IMPLEMENTATION"
|
||||
|
||||
static inline struct fdesc
|
||||
static inline struct fdesc
|
||||
__attribute ((always_inline))
|
||||
elf_ifunc_invoke (uintptr_t addr)
|
||||
{
|
||||
|
@ -19,18 +19,18 @@
|
||||
#include <sysdep.h>
|
||||
|
||||
/* This code gets called via the .plt stub, and is used in
|
||||
dl-runtime.c to call the `_dl_fixup' function and then redirect
|
||||
to the address it returns. `_dl_fixup' takes two arguments, however
|
||||
`_dl_profile_fixup' takes a number of parameters for use with
|
||||
dl-runtime.c to call the `_dl_fixup' function and then redirect
|
||||
to the address it returns. `_dl_fixup' takes two arguments, however
|
||||
`_dl_profile_fixup' takes a number of parameters for use with
|
||||
library auditing (LA).
|
||||
|
||||
|
||||
WARNING: This template is also used by gcc's __cffc, and expects
|
||||
that the "bl" for _dl_runtime_resolve exist at a particular offset.
|
||||
Do not change this template without changing gcc, while the prefix
|
||||
"bl" should fix everything so gcc finds the right spot, it will
|
||||
slow down __cffc when it attempts to call fixup to resolve function
|
||||
descriptor references. Please refer to gcc/gcc/config/pa/fptr.c
|
||||
|
||||
|
||||
Enter with r19 = reloc offset, r20 = got-8, r21 = fixup ltp. */
|
||||
|
||||
/* RELOCATION MARKER: bl to provide gcc's __cffc with fixup loc. */
|
||||
@ -136,14 +136,14 @@ _dl_runtime_profile:
|
||||
stw %r21,-32(%sp) /* PIC register value */
|
||||
|
||||
/* Create La_hppa_retval */
|
||||
/* -140, lrv_r28
|
||||
/* -140, lrv_r28
|
||||
-136, lrv_r29
|
||||
-132, 4 byte pad
|
||||
-132, 4 byte pad
|
||||
-128, lr_fr4 (8 bytes) */
|
||||
|
||||
/* Create save space for _dl_profile_fixup arguments
|
||||
-120, Saved reloc offset
|
||||
-116, Saved struct link_map
|
||||
-120, Saved reloc offset
|
||||
-116, Saved struct link_map
|
||||
-112, *framesizep */
|
||||
|
||||
/* Create La_hppa_regs */
|
||||
@ -216,7 +216,7 @@ L(nf):
|
||||
b,n L(cont)
|
||||
|
||||
L(cpe):
|
||||
/* We are going to call the resolved function, but we have a
|
||||
/* We are going to call the resolved function, but we have a
|
||||
stack frame in the middle. We use the value of framesize to
|
||||
guess how much extra frame we need, and how much frame to
|
||||
copy forward. */
|
||||
@ -254,7 +254,7 @@ L(cont):
|
||||
copy %r1, %sp
|
||||
|
||||
/* Arguments to _dl_call_pltexit */
|
||||
ldw -116(%sp), %r26 /* (1) got[1] == struct link_map */
|
||||
ldw -116(%sp), %r26 /* (1) got[1] == struct link_map */
|
||||
ldw -120(%sp), %r25 /* (2) reloc offsets */
|
||||
ldo -56(%sp), %r24 /* (3) *La_hppa_regs */
|
||||
ldo -124(%sp), %r23 /* (4) *La_hppa_retval */
|
||||
|
@ -74,7 +74,7 @@ typedef unsigned int fexcept_t;
|
||||
userspace. This structure is also not correctly aligned ever, in
|
||||
an ABI error we left out __aligned(8) and subsequently all of our
|
||||
fenv functions must accept unaligned input, align the input, and
|
||||
then use assembly to store fr0. This is a performance hit, but
|
||||
then use assembly to store fr0. This is a performance hit, but
|
||||
means the ABI is stable. */
|
||||
typedef struct
|
||||
{
|
||||
|
@ -22,7 +22,7 @@
|
||||
int
|
||||
fedisableexcept (int excepts)
|
||||
{
|
||||
union { unsigned long long l; unsigned int sw[2]; } s;
|
||||
union { unsigned long long l; unsigned int sw[2]; } s;
|
||||
unsigned int old_exc;
|
||||
|
||||
/* Get the current status word. */
|
||||
|
@ -24,7 +24,7 @@ int
|
||||
fegetenv (fenv_t *envp)
|
||||
{
|
||||
unsigned long long buf[4], *bufptr = buf;
|
||||
|
||||
|
||||
__asm__ (
|
||||
"fstd,ma %%fr0,8(%1) \n\t"
|
||||
"fldd -8(%1),%%fr0 \n\t"
|
||||
|
@ -25,7 +25,7 @@ fegetexcept (void)
|
||||
union { unsigned long long l; unsigned int sw[2] } s;
|
||||
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
|
||||
|
@ -40,7 +40,7 @@ feholdexcept (fenv_t *envp)
|
||||
/* Now clear all flags */
|
||||
clear.env.__status_word &= ~(FE_ALL_EXCEPT << 27);
|
||||
|
||||
/* Load the new environment. Note: fr0 must load last to enable T-bit
|
||||
/* Load the new environment. Note: fr0 must load last to enable T-bit
|
||||
Thus we start bufptr at the end and work backwards */
|
||||
bufptr = (unsigned long long *)((unsigned int)(clear.buf) + sizeof(unsigned int)*4);
|
||||
__asm__ (
|
||||
|
@ -49,7 +49,7 @@ fesetenv (const fenv_t *envp)
|
||||
| FE_DOWNWARD
|
||||
| (FE_ALL_EXCEPT << 27)));
|
||||
|
||||
/* Load the new environment. We use bufptr again since the
|
||||
/* Load the new environment. We use bufptr again since the
|
||||
initial asm has modified the value of the register and here
|
||||
we take advantage of that to load in reverse order so fr0
|
||||
is loaded last and T-Bit is enabled. */
|
||||
|
@ -27,7 +27,7 @@ fesetround (int round)
|
||||
if (round & ~FE_DOWNWARD)
|
||||
/* round is not a valid rounding mode. */
|
||||
return 1;
|
||||
|
||||
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1)" : "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
s.sw[0] &= ~FE_DOWNWARD;
|
||||
|
@ -26,8 +26,8 @@ feupdateenv (const fenv_t *envp)
|
||||
union { unsigned long long l; unsigned int sw[2]; } s;
|
||||
fenv_t temp;
|
||||
/* Get the current exception status */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l));
|
||||
memcpy(&temp, envp, sizeof(fenv_t));
|
||||
/* Currently raised exceptions not cleared */
|
||||
|
@ -25,8 +25,8 @@ fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
union { unsigned long long l; unsigned int sw[2]; } s;
|
||||
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l) : "%r0");
|
||||
|
||||
*flagp = (s.sw[0] >> 27) & excepts & FE_ALL_EXCEPT;
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include <float.h>
|
||||
#include <math.h>
|
||||
|
||||
/* Please see section 10,
|
||||
/* Please see section 10,
|
||||
page 10-5 "Delayed Trapping" in the PA-RISC 2.0 Architecture manual */
|
||||
|
||||
int
|
||||
@ -38,7 +38,7 @@ feraiseexcept (int excepts)
|
||||
occur. */
|
||||
|
||||
/* We use "fldd 0(%%sr0,%%sp),%0" to flush the delayed exception */
|
||||
|
||||
|
||||
/* First: Invalid exception. */
|
||||
if (excepts & FE_INVALID)
|
||||
{
|
||||
|
@ -25,8 +25,8 @@ fetestexcept (int excepts)
|
||||
union { unsigned long long l; unsigned int sw[2] } s;
|
||||
|
||||
/* Get the current status word. */
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
__asm__ ("fstd %%fr0,0(%1) \n\t"
|
||||
"fldd 0(%1),%%fr0 \n\t"
|
||||
: "=m" (s.l) : "r" (&s.l));
|
||||
|
||||
return (s.sw[0] >> 27) & excepts & FE_ALL_EXCEPT;
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
.text
|
||||
.export __mpn_addmul_1
|
||||
__mpn_addmul_1:
|
||||
__mpn_addmul_1:
|
||||
.proc
|
||||
.callinfo frame=64,no_calls
|
||||
.entry
|
||||
@ -60,7 +60,7 @@ __mpn_addmul_1:
|
||||
ldw -12(%r30),%r1
|
||||
|
||||
;! Main loop
|
||||
L$loop:
|
||||
L$loop:
|
||||
ldws 0(%r26),%r29
|
||||
fldws,ma 4(%r25),%fr5
|
||||
add %r29,%r20,%r20
|
||||
@ -73,7 +73,7 @@ L$loop:
|
||||
addib,<> -1,%r24,L$loop
|
||||
ldw -12(%r30),%r1
|
||||
|
||||
L$end:
|
||||
L$end:
|
||||
ldw 0(%r26),%r29
|
||||
add %r29,%r20,%r20
|
||||
stws,ma %r20,4(%r26)
|
||||
@ -87,7 +87,7 @@ L$end:
|
||||
bv 0(%r2)
|
||||
ldo -64(%r30),%r30
|
||||
|
||||
L$just_one_limb:
|
||||
L$just_one_limb:
|
||||
xmpyu %fr4,%fr5,%fr6
|
||||
ldw 0(%r26),%r29
|
||||
fstds %fr6,-16(%r30)
|
||||
|
@ -45,7 +45,7 @@
|
||||
|
||||
.text
|
||||
.export __mpn_mul_1
|
||||
__mpn_mul_1:
|
||||
__mpn_mul_1:
|
||||
.proc
|
||||
.callinfo frame=64,no_calls
|
||||
.entry
|
||||
@ -68,7 +68,7 @@ __mpn_mul_1:
|
||||
ldw -12(%r30),%r1
|
||||
|
||||
;! Main loop
|
||||
L$loop:
|
||||
L$loop:
|
||||
fldws,ma 4(%r25),%fr5
|
||||
stws,ma %r20,4(%r26)
|
||||
addc %r28,%r1,%r20
|
||||
@ -78,7 +78,7 @@ L$loop:
|
||||
addib,<> -1,%r24,L$loop
|
||||
ldw -12(%r30),%r1
|
||||
|
||||
L$end:
|
||||
L$end:
|
||||
stws,ma %r20,4(%r26)
|
||||
addc %r28,%r1,%r20
|
||||
ldw -16(%r30),%r28
|
||||
@ -87,7 +87,7 @@ L$end:
|
||||
bv 0(%r2)
|
||||
ldo -64(%r30),%r30
|
||||
|
||||
L$just_one_limb:
|
||||
L$just_one_limb:
|
||||
xmpyu %fr4,%fr5,%fr6
|
||||
fstds %fr6,-16(%r30)
|
||||
ldw -16(%r30),%r28
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
.text
|
||||
.export __mpn_submul_1
|
||||
__mpn_submul_1:
|
||||
__mpn_submul_1:
|
||||
.proc
|
||||
.callinfo frame=64,no_calls
|
||||
.entry
|
||||
@ -65,7 +65,7 @@ __mpn_submul_1:
|
||||
ldw -12(%r30),%r1
|
||||
|
||||
;! Main loop
|
||||
L$loop:
|
||||
L$loop:
|
||||
ldws 0(%r26),%r29
|
||||
fldws,ma 4(%r25),%fr5
|
||||
sub %r29,%r20,%r22
|
||||
@ -79,7 +79,7 @@ L$loop:
|
||||
addib,<> -1,%r24,L$loop
|
||||
ldw -12(%r30),%r1
|
||||
|
||||
L$end:
|
||||
L$end:
|
||||
ldw 0(%r26),%r29
|
||||
sub %r29,%r20,%r22
|
||||
add %r22,%r20,%r0
|
||||
@ -95,7 +95,7 @@ L$end:
|
||||
bv 0(%r2)
|
||||
ldo -64(%r30),%r30
|
||||
|
||||
L$just_one_limb:
|
||||
L$just_one_limb:
|
||||
xmpyu %fr4,%fr5,%fr6
|
||||
ldw 0(%r26),%r29
|
||||
fstds %fr6,-16(%r30)
|
||||
|
@ -27,11 +27,11 @@
|
||||
;! d gr23
|
||||
|
||||
.text
|
||||
L$0000:
|
||||
L$0000:
|
||||
.word 0x43f00000
|
||||
.word 0x0
|
||||
.export __udiv_qrnnd
|
||||
__udiv_qrnnd:
|
||||
__udiv_qrnnd:
|
||||
.proc
|
||||
.callinfo frame=64,no_calls
|
||||
.entry
|
||||
@ -48,7 +48,7 @@ L$0:
|
||||
fcnvxf,dbl,dbl %fr5,%fr5
|
||||
fldds 0(%r1),%fr4
|
||||
fadd,dbl %fr4,%fr5,%fr5
|
||||
L$1:
|
||||
L$1:
|
||||
fcpy,sgl %fr0,%fr6L
|
||||
fldws -12(%r30),%fr6R
|
||||
fcnvxf,dbl,dbl %fr6,%fr4
|
||||
@ -69,7 +69,7 @@ L$1:
|
||||
|
||||
add %r22,%r23,%r22
|
||||
ldo -1(%r28),%r28
|
||||
L$2:
|
||||
L$2:
|
||||
bv 0(%r2)
|
||||
stws %r22,0(%r26)
|
||||
|
||||
|
@ -23,6 +23,6 @@ pthread_spin_init (pthread_spinlock_t *lock, int pshared)
|
||||
int tmp = 0;
|
||||
/* This should be a memory barrier to newer compilers */
|
||||
__asm__ __volatile__ ("stw,ma %1,0(%0)"
|
||||
: : "r" (lock), "r" (tmp) : "memory");
|
||||
: : "r" (lock), "r" (tmp) : "memory");
|
||||
return 0;
|
||||
}
|
||||
|
@ -23,6 +23,6 @@ pthread_spin_unlock (pthread_spinlock_t *lock)
|
||||
int tmp = 0;
|
||||
/* This should be a memory barrier to newer compilers */
|
||||
__asm__ __volatile__ ("stw,ma %1,0(%0)"
|
||||
: : "r" (lock), "r" (tmp) : "memory");
|
||||
: : "r" (lock), "r" (tmp) : "memory");
|
||||
return 0;
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ typedef struct
|
||||
elf_gregset_t. The thread descriptor is sizeof (struct pthread) away. */
|
||||
# define DB_THREAD_SELF \
|
||||
REGISTER (32, 32, 53 * 4, -sizeof (struct pthread))
|
||||
|
||||
|
||||
/* Access to data in the thread descriptor is easy. */
|
||||
# define THREAD_GETMEM(descr, member) \
|
||||
descr->member
|
||||
|
@ -1,4 +1,4 @@
|
||||
;! HP-PA __mpn_rshift --
|
||||
;! HP-PA __mpn_rshift --
|
||||
|
||||
;! Copyright (C) 1992-2013 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -39,8 +39,8 @@
|
||||
.import __libc_csu_fini, code
|
||||
.import __libc_csu_init, code
|
||||
|
||||
/* Have the linker create plabel words so we get PLABEL32
|
||||
relocs and not 21/14. The use of 21/14 relocs is only
|
||||
/* Have the linker create plabel words so we get PLABEL32
|
||||
relocs and not 21/14. The use of 21/14 relocs is only
|
||||
supported in the latest dynamic linker. */
|
||||
.section .rodata
|
||||
.align 4
|
||||
@ -66,7 +66,7 @@ _start:
|
||||
r24 - argv
|
||||
r23 - False _dl_fini plabel address
|
||||
|
||||
This function is called from the lower half of RTLD_START.
|
||||
This function is called from the lower half of RTLD_START.
|
||||
|
||||
The call to __libc_start_main expects:
|
||||
|
||||
@ -76,7 +76,7 @@ _start:
|
||||
4. r23 - __libc_csu_init
|
||||
5. sp-52 - __libc_csu_fini
|
||||
6. sp-56 - rtld_fini
|
||||
7. sp-60 - stackend */
|
||||
7. sp-60 - stackend */
|
||||
|
||||
.proc
|
||||
.callinfo
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#undef ASM_LINE_SEP
|
||||
#define ASM_LINE_SEP !
|
||||
#define ASM_LINE_SEP !
|
||||
|
||||
#ifdef __ASSEMBLER__
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
|
||||
/* GCC does everything for us. */
|
||||
#ifdef PROF
|
||||
#define CALL_MCOUNT
|
||||
#define CALL_MCOUNT
|
||||
#else
|
||||
#define CALL_MCOUNT /* Do nothing. */
|
||||
#endif
|
||||
|
@ -28,7 +28,7 @@ fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
/* Get the current exceptions. */
|
||||
_FPU_GETCW (temp);
|
||||
|
||||
/* We only save the relevant bits here. In particular, care has to be
|
||||
/* We only save the relevant bits here. In particular, care has to be
|
||||
taken with the CAUSE bits, as an inadvertent restore later on could
|
||||
generate unexpected exceptions. */
|
||||
|
||||
|
@ -29,7 +29,7 @@ feraiseexcept (int excepts)
|
||||
/* Get current state. */
|
||||
_FPU_GETCW (cw);
|
||||
|
||||
/* Set flag bits (which are accumulative), and *also* set the
|
||||
/* Set flag bits (which are accumulative), and *also* set the
|
||||
cause bits. The setting of the cause bits is what actually causes
|
||||
the hardware to generate the exception, if the corresponding enable
|
||||
bit is set as well. */
|
||||
|
@ -42,7 +42,7 @@ ENTRY (memset)
|
||||
sll t0, a1, 16
|
||||
or a1, t0 # a1 is now pattern in full word
|
||||
|
||||
L(ueven):
|
||||
L(ueven):
|
||||
subu t0, zero, a0 # Unaligned address?
|
||||
andi t0, 0x3
|
||||
beq t0, zero, L(chkw)
|
||||
@ -50,33 +50,33 @@ L(ueven):
|
||||
SWHI a1, 0(a0) # Yes, handle first unaligned part
|
||||
addu a0, t0 # Now both a0 and a2 are updated
|
||||
|
||||
L(chkw):
|
||||
L(chkw):
|
||||
andi t0, a2, 0x7 # Enough left for one loop iteration?
|
||||
beq t0, a2, L(chkl)
|
||||
subu a3, a2, t0
|
||||
addu a3, a0 # a3 is last loop address +1
|
||||
move a2, t0 # a2 is now # of bytes left after loop
|
||||
L(loopw):
|
||||
L(loopw):
|
||||
addiu a0, 8 # Handle 2 words pr. iteration
|
||||
sw a1, -8(a0)
|
||||
bne a0, a3, L(loopw)
|
||||
sw a1, -4(a0)
|
||||
|
||||
L(chkl):
|
||||
L(chkl):
|
||||
andi t0, a2, 0x4 # Check if there is at least a full
|
||||
beq t0, zero, L(last8) # word remaining after the loop
|
||||
subu a2, t0
|
||||
sw a1, 0(a0) # Yes...
|
||||
addiu a0, 4
|
||||
|
||||
L(last8):
|
||||
L(last8):
|
||||
blez a2, L(exit) # Handle last 8 bytes (if cnt>0)
|
||||
addu a3, a2, a0 # a3 is last address +1
|
||||
L(lst8l):
|
||||
L(lst8l):
|
||||
addiu a0, 1
|
||||
bne a0, a3, L(lst8l)
|
||||
sb a1, -1(a0)
|
||||
L(exit):
|
||||
L(exit):
|
||||
j ra # Bye, bye
|
||||
nop
|
||||
|
||||
|
@ -35,7 +35,7 @@ ENTRY (_setjmp)
|
||||
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
nop
|
||||
#endif
|
||||
#endif
|
||||
RESTORE_GP64_REG
|
||||
move a1, zero /* Pass a second argument of zero. */
|
||||
#ifdef __PIC__
|
||||
|
@ -35,7 +35,7 @@ ENTRY (setjmp)
|
||||
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
nop
|
||||
#endif
|
||||
#endif
|
||||
RESTORE_GP64_REG
|
||||
dli a1, 1 /* Pass a second argument of one. */
|
||||
#ifdef __PIC__
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
|
||||
/* void *memset(void *s, int c, size_t n);
|
||||
|
||||
|
||||
This could probably be optimized further. */
|
||||
|
||||
#if __MIPSEB
|
||||
|
@ -35,7 +35,7 @@ ENTRY (__sigsetjmp)
|
||||
PTR_LA t9, __sigsetjmp_aux
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
nop
|
||||
#endif
|
||||
#endif
|
||||
RESTORE_GP64_REG
|
||||
#if _MIPS_SIM != _ABIO32
|
||||
move a4, gp
|
||||
|
@ -70,7 +70,7 @@
|
||||
char **argv, void (*init) (void), void (*fini) (void),
|
||||
void (*rtld_fini) (void), void *stack_end)
|
||||
*/
|
||||
|
||||
|
||||
.text
|
||||
.globl ENTRY_POINT
|
||||
.type ENTRY_POINT,@function
|
||||
@ -87,11 +87,11 @@ ENTRY_POINT:
|
||||
PTR_LA $4, main /* main */
|
||||
PTR_L $5, 0($29) /* argc */
|
||||
PTR_ADDIU $6, $29, PTRSIZE /* argv */
|
||||
|
||||
|
||||
/* Allocate space on the stack for seven arguments (o32 only)
|
||||
and make sure the stack is aligned to double words (8 bytes)
|
||||
and make sure the stack is aligned to double words (8 bytes)
|
||||
on o32 and quad words (16 bytes) on n32 and n64. */
|
||||
|
||||
|
||||
and $29, -2 * SZREG
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
PTR_SUBIU $29, 32
|
||||
|
@ -17,18 +17,18 @@
|
||||
License along with the GNU C Library. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* We want to specify the bit pattern of the __fe_*_env constants, so
|
||||
/* We want to specify the bit pattern of the __fe_*_env constants, so
|
||||
pretend they're really `long long' instead of `double'. */
|
||||
|
||||
/* If the default argument is used we use this value. Disable all
|
||||
signalling exceptions as default. */
|
||||
const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
|
||||
const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
|
||||
0x000000003e000000ULL;
|
||||
|
||||
/* Floating-point environment where none of the exceptions are masked. */
|
||||
const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) =
|
||||
const unsigned long long __fe_enabled_env __attribute__ ((aligned (8))) =
|
||||
0xfff80000000000f8ULL;
|
||||
|
||||
/* Floating-point environment with the NI bit set. */
|
||||
const unsigned long long __fe_nonieee_env __attribute__ ((aligned (8))) =
|
||||
const unsigned long long __fe_nonieee_env __attribute__ ((aligned (8))) =
|
||||
0xfff8000000000004ULL;
|
||||
|
@ -24,5 +24,5 @@
|
||||
get the fegetround definition. */
|
||||
|
||||
#include <fenv.h>
|
||||
|
||||
|
||||
#endif /* fenv_libc.h */
|
||||
|
@ -138,7 +138,7 @@ ENTRY (__memcpy)
|
||||
- r16 = WORD_0.
|
||||
- r17 == r1 + 16.
|
||||
- r27 holds saved lr to restore.
|
||||
|
||||
|
||||
On exit:
|
||||
- r0 is incremented by 64.
|
||||
- r1 is incremented by 64, unless that would point to a word
|
||||
@ -282,7 +282,7 @@ ENTRY (__memcpy)
|
||||
/* This copies unaligned words until either there are fewer
|
||||
than 4 bytes left to copy, or until the destination pointer
|
||||
is cache-aligned, whichever comes first.
|
||||
|
||||
|
||||
On entry:
|
||||
- r0 is the next store address.
|
||||
- r1 points 4 bytes past the load address corresponding to r0.
|
||||
@ -329,7 +329,7 @@ ENTRY (__memcpy)
|
||||
{ mvz r3, r8, r1; wh64 r0 }
|
||||
|
||||
/* This loop runs twice.
|
||||
|
||||
|
||||
On entry:
|
||||
- r17 is even before the first iteration, and odd before
|
||||
the second. It is incremented inside the loop. Encountering
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#if defined(PIC)
|
||||
/* Put this at the end of libc's text segment so that all of
|
||||
the direct branches from the syscalls are forward, and
|
||||
the direct branches from the syscalls are forward, and
|
||||
thus predicted not taken. */
|
||||
.section .text.last, "ax", @progbits
|
||||
#else
|
||||
|
@ -30,7 +30,7 @@ FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
|
||||
RAOFF= FRAMESZ-(1*SZREG)
|
||||
GPOFF= FRAMESZ-(2*SZREG)
|
||||
V0OFF= FRAMESZ-(3*SZREG)
|
||||
|
||||
|
||||
ENTRY(__syscall_error)
|
||||
#ifdef __PIC__
|
||||
.set noat
|
||||
@ -79,7 +79,7 @@ ENTRY(__syscall_error)
|
||||
SETUP_GPX (AT)
|
||||
#endif
|
||||
SETUP_GPX64 (t9, AT)
|
||||
|
||||
|
||||
#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN
|
||||
/* We translate the system's EWOULDBLOCK error into EAGAIN.
|
||||
The GNU C library always defines EWOULDBLOCK==EAGAIN.
|
||||
|
@ -34,7 +34,7 @@
|
||||
# define __ASSUME_IN_NONBLOCK 1
|
||||
#endif
|
||||
|
||||
/* Support for the pipe2, eventfd2, signalfd4 syscalls was added for alpha
|
||||
/* Support for the pipe2, eventfd2, signalfd4 syscalls was added for alpha
|
||||
after 2.6.33-rc1. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020621
|
||||
# define __ASSUME_PIPE2 1
|
||||
|
@ -35,7 +35,7 @@ struct kernel_stat64
|
||||
unsigned int __pad0;
|
||||
|
||||
unsigned long st_atime;
|
||||
unsigned long st_atimensec;
|
||||
unsigned long st_atimensec;
|
||||
unsigned long st_mtime;
|
||||
unsigned long st_mtimensec;
|
||||
unsigned long st_ctime;
|
||||
|
@ -73,7 +73,7 @@
|
||||
: (fl)) \
|
||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
T10: XXXXXXXXXXXXXXXX T11: XXXXXXXXXXXXXXXX RA: XXXXXXXXXXXXXXXX
|
||||
T12: XXXXXXXXXXXXXXXX AT: XXXXXXXXXXXXXXXX GP: XXXXXXXXXXXXXXXX
|
||||
SP: XXXXXXXXXXXXXXXX PC: XXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
FP0: XXXXXXXXXXXXXXXX FP1: XXXXXXXXXXXXXXXX FP2: XXXXXXXXXXXXXXXX
|
||||
FP3: XXXXXXXXXXXXXXXX FP4: XXXXXXXXXXXXXXXX FP5: XXXXXXXXXXXXXXXX
|
||||
FP6: XXXXXXXXXXXXXXXX FP7: XXXXXXXXXXXXXXXX FP8: XXXXXXXXXXXXXXXX
|
||||
@ -44,13 +44,13 @@
|
||||
FP24: XXXXXXXXXXXXXXXX FP25: XXXXXXXXXXXXXXXX FP26: XXXXXXXXXXXXXXXX
|
||||
FP27: XXXXXXXXXXXXXXXX FP28: XXXXXXXXXXXXXXXX FP29: XXXXXXXXXXXXXXXX
|
||||
FP30: XXXXXXXXXXXXXXXX FPCR: XXXXXXXXXXXXXXXX
|
||||
|
||||
|
||||
TA0: XXXXXXXXXXXXXXXX TA1: XXXXXXXXXXXXXXXX TA2: XXXXXXXXXXXXXXXX
|
||||
*/
|
||||
|
||||
#define NREGS (32+32+3)
|
||||
|
||||
static const char __attribute__((aligned(8))) regnames[NREGS][8] =
|
||||
static const char __attribute__((aligned(8))) regnames[NREGS][8] =
|
||||
{
|
||||
" V0: ", " T0: ", " T1: ",
|
||||
" T2: ", " T3: ", " T4: ",
|
||||
@ -81,7 +81,7 @@ static const char __attribute__((aligned(8))) regnames[NREGS][8] =
|
||||
|
||||
#define O(FIELD, LF) offsetof(struct sigcontext, FIELD) + LF
|
||||
|
||||
static const int offsets[NREGS] =
|
||||
static const int offsets[NREGS] =
|
||||
{
|
||||
O(sc_regs[0], 0), O(sc_regs[1], 0), O(sc_regs[2], 1),
|
||||
O(sc_regs[3], 0), O(sc_regs[4], 0), O(sc_regs[5], 1),
|
||||
@ -118,7 +118,7 @@ register_dump (int fd, struct sigcontext *ctx)
|
||||
char buf[NREGS*(8+16) + 25 + 80];
|
||||
char *p = buf;
|
||||
size_t i;
|
||||
|
||||
|
||||
p = stpcpy (p, "Register dump:\n\n");
|
||||
|
||||
for (i = 0; i < NREGS; ++i)
|
||||
@ -126,7 +126,7 @@ register_dump (int fd, struct sigcontext *ctx)
|
||||
int this_offset, this_lf;
|
||||
unsigned long val;
|
||||
signed long j;
|
||||
|
||||
|
||||
this_offset = offsets[i];
|
||||
this_lf = this_offset & 7;
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
/*
|
||||
* This is for COMPATIBILITY with Linux/x86 only. Linux/Alpha system
|
||||
* calls return an error indication in a3. This allows arbitrary 64bit
|
||||
* calls return an error indication in a3. This allows arbitrary 64bit
|
||||
* values to be returned in v0 (because negative values are not
|
||||
* mistaken as error numbers). However, C allows only one value to
|
||||
* be returned, so the interface below folds the error indication passed in
|
||||
|
@ -37,7 +37,7 @@ ENTRY (__mmap)
|
||||
movs ip, r5, lsl #20
|
||||
bne .Linval
|
||||
mov r5, r5, lsr #12
|
||||
|
||||
|
||||
/* do the syscall */
|
||||
DO_CALL (mmap2, 0)
|
||||
|
||||
|
@ -71,7 +71,7 @@
|
||||
: (fl)) \
|
||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -50,7 +50,7 @@ ENTRY(swapcontext)
|
||||
itt ne
|
||||
movne r0, r4
|
||||
RETINSTR(ne, r14)
|
||||
|
||||
|
||||
/* Fix up LR and the PC. */
|
||||
str r13,[r0, #MCONTEXT_ARM_SP]
|
||||
str r14,[r0, #MCONTEXT_ARM_LR]
|
||||
|
@ -1,7 +1,7 @@
|
||||
# File name Caller Syscall name # args Strong name Weak names
|
||||
|
||||
# rlimit APIs
|
||||
getrlimit - getrlimit i:ip __getrlimit getrlimit
|
||||
setrlimit - setrlimit i:ip __setrlimit setrlimit
|
||||
getrlimit - getrlimit i:ip __getrlimit getrlimit
|
||||
setrlimit - setrlimit i:ip __setrlimit setrlimit
|
||||
prlimit64 EXTRA prlimit64 i:iipp prlimit64
|
||||
fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
|
||||
|
@ -49,13 +49,13 @@ typedef uintmax_t uatomic_max_t;
|
||||
*addr = new;
|
||||
return prev; */
|
||||
|
||||
/* Use the kernel atomic light weight syscalls on hppa. */
|
||||
/* Use the kernel atomic light weight syscalls on hppa. */
|
||||
#define _LWS "0xb0"
|
||||
#define _LWS_CAS "0"
|
||||
/* Note r31 is the link register. */
|
||||
#define _LWS_CLOBBER "r1", "r26", "r25", "r24", "r23", "r22", "r21", "r20", "r28", "r31", "memory"
|
||||
/* String constant for -EAGAIN. */
|
||||
#define _ASM_EAGAIN "-11"
|
||||
#define _ASM_EAGAIN "-11"
|
||||
/* String constant for -EDEADLOCK. */
|
||||
#define _ASM_EDEADLOCK "-45"
|
||||
|
||||
@ -100,7 +100,7 @@ typedef uintmax_t uatomic_max_t;
|
||||
})
|
||||
#else
|
||||
# error __ASSUME_LWS_CAS is required to build glibc.
|
||||
#endif
|
||||
#endif
|
||||
/* __ASSUME_LWS_CAS */
|
||||
|
||||
#endif
|
||||
|
@ -26,23 +26,23 @@
|
||||
#include <bits/errno.h>
|
||||
|
||||
/* Non-thread code calls __clone with the following parameters:
|
||||
int clone(int (*fn)(void *arg),
|
||||
void *child_stack,
|
||||
int flags,
|
||||
int clone(int (*fn)(void *arg),
|
||||
void *child_stack,
|
||||
int flags,
|
||||
void *arg)
|
||||
|
||||
|
||||
NPTL Code will call __clone with the following parameters:
|
||||
int clone(int (*fn)(void *arg),
|
||||
void *child_stack,
|
||||
int flags,
|
||||
int clone(int (*fn)(void *arg),
|
||||
void *child_stack,
|
||||
int flags,
|
||||
void *arg,
|
||||
int *parent_tidptr,
|
||||
struct user_desc *newtls,
|
||||
int *parent_tidptr,
|
||||
struct user_desc *newtls,
|
||||
int *child_pidptr)
|
||||
|
||||
|
||||
The code should not mangle the extra input registers.
|
||||
Syscall expects: Input to __clone:
|
||||
4(r25) - function pointer (r26, arg0)
|
||||
4(r25) - function pointer (r26, arg0)
|
||||
0(r25) - argument (r23, arg3)
|
||||
r26 - clone flags. (r24, arg2)
|
||||
r25+64 - user stack pointer. (r25, arg1)
|
||||
@ -53,9 +53,9 @@
|
||||
|
||||
Return:
|
||||
|
||||
On success the thread ID of the child process is returend in
|
||||
On success the thread ID of the child process is returend in
|
||||
the callers context.
|
||||
On error return -1, and set errno to the value returned by
|
||||
On error return -1, and set errno to the value returned by
|
||||
the syscall.
|
||||
*/
|
||||
|
||||
@ -100,13 +100,13 @@ ENTRY(__clone)
|
||||
|
||||
/* Restore the PIC register. */
|
||||
#ifdef PIC
|
||||
copy %r4, %r19 /* parent */
|
||||
copy %r4, %r19 /* parent */
|
||||
#endif
|
||||
|
||||
comib,=,n 0, %ret0, .LthreadStart
|
||||
|
||||
/* Successful return from the parent
|
||||
No need to restore the PIC register,
|
||||
No need to restore the PIC register,
|
||||
since we return immediately. */
|
||||
|
||||
ldw -84(%sp), %rp
|
||||
@ -134,14 +134,14 @@ ENTRY(__clone)
|
||||
#ifdef RESET_PID
|
||||
# define CLONE_VM_BIT 23 /* 0x00000100 */
|
||||
# define CLONE_THREAD_BIT 15 /* 0x00010000 */
|
||||
/* Load original clone flags.
|
||||
/* Load original clone flags.
|
||||
If CLONE_THREAD was passed, don't reset the PID/TID.
|
||||
If CLONE_VM was passed, we need to store -1 to PID/TID.
|
||||
If CLONE_VM and CLONE_THREAD were not set store the result
|
||||
of getpid to PID/TID. */
|
||||
ldw -56(%sp), %r26
|
||||
bb,<,n %r26, CLONE_THREAD_BIT, 1f
|
||||
bb,< %r26, CLONE_VM_BIT, 2f
|
||||
bb,< %r26, CLONE_VM_BIT, 2f
|
||||
ldi -1, %ret0
|
||||
ble 0x100(%sr2, %r0)
|
||||
ldi __NR_getpid, %r20
|
||||
|
@ -1,9 +1,9 @@
|
||||
#include_next <internaltypes.h>
|
||||
#ifndef _INTERNAL_TYPES_H_HPPA_
|
||||
#ifndef _INTERNAL_TYPES_H_HPPA_
|
||||
#define _INTERNAL_TYPES_H_HPPA_ 1
|
||||
#include <atomic.h>
|
||||
|
||||
/* In GLIBC 2.10 HPPA switched from Linuxthreads to NPTL, and in order
|
||||
/* In GLIBC 2.10 HPPA switched from Linuxthreads to NPTL, and in order
|
||||
to maintain ABI compatibility with pthread_cond_t, some care had to be
|
||||
taken.
|
||||
|
||||
|
@ -29,9 +29,9 @@
|
||||
/* Stack must be 64-byte aligned at all times. */
|
||||
#define STACK_ALIGN 64
|
||||
/* Size of frame marker in unsigned long words. */
|
||||
#define FRAME_SIZE_UL 8
|
||||
#define FRAME_SIZE_UL 8
|
||||
/* Size of frame marker in bytes. */
|
||||
#define FRAME_SIZE_BYTES (8 * sizeof(unsigned long))
|
||||
#define FRAME_SIZE_BYTES (8 * sizeof(unsigned long))
|
||||
/* Size of X arguments in bytes. */
|
||||
#define ARGS(x) (x * sizeof(unsigned long))
|
||||
|
||||
@ -42,7 +42,7 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
|
||||
va_list ap;
|
||||
int i;
|
||||
|
||||
/* Create a 64-byte aligned frame to store args. Use ss_sp if
|
||||
/* Create a 64-byte aligned frame to store args. Use ss_sp if
|
||||
it is available, otherwise be robust and use the currently
|
||||
saved stack pointer. */
|
||||
if (ucp->uc_stack.ss_sp && ucp->uc_stack.ss_size)
|
||||
@ -50,8 +50,8 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
|
||||
else
|
||||
osp = (unsigned long *)ucp->uc_mcontext.sc_gr[30];
|
||||
|
||||
sp = (unsigned long *)((((unsigned long) osp)
|
||||
+ FRAME_SIZE_BYTES + ARGS(argc) + STACK_ALIGN)
|
||||
sp = (unsigned long *)((((unsigned long) osp)
|
||||
+ FRAME_SIZE_BYTES + ARGS(argc) + STACK_ALIGN)
|
||||
& ~(STACK_ALIGN - 1));
|
||||
|
||||
/* Use new frame. */
|
||||
@ -89,12 +89,12 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
|
||||
/* 64bit: r19-r22 are arg7-arg4. */
|
||||
ucp->uc_mcontext.sc_gr[22+4-i] = va_arg (ap, int);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* All other arguments go on the stack. */
|
||||
sp[-1 * (FRAME_SIZE_UL + 1 + i)] = va_arg (ap, int);
|
||||
}
|
||||
va_end (ap);
|
||||
va_end (ap);
|
||||
}
|
||||
weak_alias(__makecontext, makecontext)
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
__ptr_t
|
||||
__mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
|
||||
{
|
||||
|
||||
|
||||
__ptr_t ret;
|
||||
|
||||
ret = (__ptr_t) INLINE_SYSCALL (mmap, 6, addr, len, prot, flags, fd, offset);
|
||||
|
@ -21,7 +21,7 @@
|
||||
/* Linuxthread type sizes (bytes):
|
||||
sizeof(pthread_attr_t) = 0x24 (36)
|
||||
sizeof(pthread_barrier_t) = 0x30 (48)
|
||||
sizeof(pthread_barrierattr_t) = 0x4 (4)
|
||||
sizeof(pthread_barrierattr_t) = 0x4 (4)
|
||||
sizeof(pthread_cond_t) = 0x30 (48)
|
||||
sizeof(pthread_condattr_t) = 0x4 (4)
|
||||
sizeof(pthread_mutex_t) = 0x30 (48)
|
||||
@ -33,9 +33,9 @@
|
||||
#define __SIZEOF_PTHREAD_ATTR_T 36
|
||||
#define __SIZEOF_PTHREAD_BARRIER_T 48
|
||||
#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_COND_T 48
|
||||
#define __SIZEOF_PTHREAD_COND_T 48
|
||||
#define __SIZEOF_PTHREAD_CONDATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_MUTEX_T 48
|
||||
#define __SIZEOF_PTHREAD_MUTEX_T 48
|
||||
#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
|
||||
#define __SIZEOF_PTHREAD_RWLOCK_T 64
|
||||
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
|
||||
@ -74,7 +74,7 @@ typedef union
|
||||
binary compatibility. */
|
||||
int __kind;
|
||||
/* The old 4-word 16-byte aligned lock. This is initalized
|
||||
to all ones by the Linuxthreads PTHREAD_MUTEX_INITIALIZER.
|
||||
to all ones by the Linuxthreads PTHREAD_MUTEX_INITIALIZER.
|
||||
Unused in NPTL. */
|
||||
int __compat_padding[4];
|
||||
/* In the old structure there are 4 words left due to alignment.
|
||||
@ -105,7 +105,7 @@ typedef union
|
||||
the attribute type is not exposed on purpose. However, this structure
|
||||
is exposed via PTHREAD_COND_INITIALIZER, and because of this, the
|
||||
Linuxthreads version sets the first four ints to one. In the NPTL
|
||||
version we must check, in every function using pthread_cond_t,
|
||||
version we must check, in every function using pthread_cond_t,
|
||||
for the static Linuxthreads initializer and clear the appropriate
|
||||
words. */
|
||||
typedef union
|
||||
@ -114,7 +114,7 @@ typedef union
|
||||
{
|
||||
/* In the old Linuxthreads pthread_cond_t, this is the
|
||||
start of the 4-word lock structure, the next four words
|
||||
are set all to 1 by the Linuxthreads
|
||||
are set all to 1 by the Linuxthreads
|
||||
PTHREAD_COND_INITIALIZER. */
|
||||
int __lock __attribute__ ((aligned(16)));
|
||||
/* Tracks the initialization of this structure:
|
||||
|
@ -77,7 +77,7 @@
|
||||
: (fl)) \
|
||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Type for lock object. */
|
||||
@ -257,7 +257,7 @@ __lll_cond_lock (int *futex, int private)
|
||||
}
|
||||
#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
|
||||
|
||||
extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *,
|
||||
extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *,
|
||||
int private) attribute_hidden;
|
||||
extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *,
|
||||
int private) attribute_hidden;
|
||||
|
@ -49,7 +49,7 @@
|
||||
|
||||
/* r26, r25, r24, r23 are free since vfork has no arguments */
|
||||
ENTRY(__vfork)
|
||||
/* We must not create a frame. When the child unwinds to call
|
||||
/* We must not create a frame. When the child unwinds to call
|
||||
exec it will clobber the same frame that the parent
|
||||
needs to unwind. */
|
||||
|
||||
@ -75,7 +75,7 @@ ENTRY(__vfork)
|
||||
|
||||
/* Return, and DO NOT restore rp. The child may have called
|
||||
functions that updated the frame's rp. This works because
|
||||
the kernel ensures rp is preserved across the vfork
|
||||
the kernel ensures rp is preserved across the vfork
|
||||
syscall. */
|
||||
bv,n %r0(%rp)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include_next <pthreadP.h>
|
||||
#ifndef _PTHREADP_H_HPPA_
|
||||
#ifndef _PTHREADP_H_HPPA_
|
||||
#define _PTHREADP_H_HPPA_ 1
|
||||
|
||||
/* Internal cond functions. */
|
||||
|
@ -33,16 +33,16 @@
|
||||
|
||||
do arguments (read arg5 and arg6 to registers)
|
||||
setup frame
|
||||
|
||||
|
||||
check if there are threads, yes jump to pseudo_cancel
|
||||
|
||||
|
||||
unthreaded:
|
||||
syscall
|
||||
check syscall return (jump to pre_end)
|
||||
set errno
|
||||
set return to -1
|
||||
(jump to pre_end)
|
||||
|
||||
|
||||
pseudo_cancel:
|
||||
cenable
|
||||
syscall
|
||||
@ -50,14 +50,14 @@
|
||||
check syscall return (jump to pre_end)
|
||||
set errno
|
||||
set return to -1
|
||||
|
||||
|
||||
pre_end
|
||||
restore stack
|
||||
|
||||
|
||||
It is expected that 'ret' and 'END' macros will
|
||||
append an 'undo arguments' and 'return' to the
|
||||
append an 'undo arguments' and 'return' to the
|
||||
this PSEUDO macro. */
|
||||
|
||||
|
||||
# undef PSEUDO
|
||||
# define PSEUDO(name, syscall_name, args) \
|
||||
ENTRY (__##syscall_name##_nocancel) \
|
||||
|
@ -117,7 +117,7 @@ ENTRY(__setcontext)
|
||||
|
||||
/* Do not load oSS_SP into %sp. The value of oSS_SP indicates
|
||||
the start of the user allocated stack, but not the sp that
|
||||
should be used by the new context. In fact makecontext
|
||||
should be used by the new context. In fact makecontext
|
||||
will create a frame, and adjust sp as required. We do not
|
||||
support calling getcontext and modifying ss_sp without
|
||||
a call to makecontext to synchronize ss_sp into the machine
|
||||
@ -141,7 +141,7 @@ ENTRY(__setcontext)
|
||||
/* No further context available. Exit now. */
|
||||
bl _exit, %r2
|
||||
ldi -1, %r26
|
||||
|
||||
|
||||
|
||||
.Lerror:
|
||||
/* Epilogue */
|
||||
|
@ -17,7 +17,7 @@ semctl - semctl i:iiii __semctl semctl
|
||||
# proper socket implementations:
|
||||
accept - accept Ci:iBN __libc_accept __accept accept
|
||||
bind - bind i:ipi __bind bind
|
||||
connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
|
||||
connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
|
||||
getpeername - getpeername i:ipp __getpeername getpeername
|
||||
getsockname - getsockname i:ipp __getsockname getsockname
|
||||
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
|
||||
@ -33,6 +33,6 @@ shutdown - shutdown i:ii __shutdown shutdown
|
||||
socket - socket i:iii __socket socket
|
||||
socketpair - socketpair i:iiif __socketpair socketpair
|
||||
|
||||
setrlimit - setrlimit i:ip __setrlimit setrlimit
|
||||
getrlimit - getrlimit i:ip __getrlimit getrlimit
|
||||
setrlimit - setrlimit i:ip __setrlimit setrlimit
|
||||
getrlimit - getrlimit i:ip __getrlimit getrlimit
|
||||
prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
|
||||
|
@ -37,8 +37,8 @@ __syscall_error (int err_no)
|
||||
INTERNAL_SYSCALL, and all the generated pure assembly syscall wrappers.
|
||||
How often the function is used is unknown. */
|
||||
|
||||
long int
|
||||
syscall (long int __sysno, ...)
|
||||
long int
|
||||
syscall (long int __sysno, ...)
|
||||
{
|
||||
/* FIXME: Keep this matching INLINE_SYSCALL for hppa */
|
||||
va_list args;
|
||||
@ -54,7 +54,7 @@ syscall (long int __sysno, ...)
|
||||
arg4 = va_arg (args, long int);
|
||||
arg5 = va_arg (args, long int);
|
||||
va_end (args);
|
||||
|
||||
|
||||
{
|
||||
register unsigned long int __res asm("r28");
|
||||
PIC_REG_DEF
|
||||
|
@ -114,7 +114,7 @@ ENTRY (__socket)
|
||||
/* Successful; return the syscall's value. */
|
||||
rts
|
||||
#endif
|
||||
|
||||
|
||||
PSEUDO_END (__socket)
|
||||
|
||||
#ifndef NO_WEAK_ALIAS
|
||||
|
@ -68,7 +68,7 @@ _dl_static_init (struct link_map *l)
|
||||
|
||||
loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
|
||||
NULL, 0, 1, NULL);
|
||||
|
||||
|
||||
for (scope = l->l_local_scope; *scope != NULL; scope++)
|
||||
for (i = 0; i < (*scope)->r_nlist; i++)
|
||||
if ((*scope)->r_list[i] == loadbase)
|
||||
|
@ -71,7 +71,7 @@
|
||||
: (fl)) \
|
||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -34,7 +34,7 @@ versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||
|
||||
/* For the nofpu case the old/new versions are the same function. */
|
||||
/* For the nofpu case the old/new versions are the same function. */
|
||||
strong_alias (__getcontext, __novec_getcontext)
|
||||
|
||||
compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
|
||||
|
@ -34,7 +34,7 @@ versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||
|
||||
/* For the nofpu case the old/new versions are the same function. */
|
||||
/* For the nofpu case the old/new versions are the same function. */
|
||||
strong_alias (__setcontext, __novec_setcontext)
|
||||
|
||||
compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
|
||||
|
@ -34,7 +34,7 @@ versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
|
||||
|
||||
/* For the nofpu case the old/new versions are the same function. */
|
||||
/* For the nofpu case the old/new versions are the same function. */
|
||||
strong_alias (__swapcontext, __novec_swapcontext)
|
||||
|
||||
compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
|
||||
|
@ -83,7 +83,7 @@ ENTRY (__clone)
|
||||
|
||||
/* We need to switch the argument convention around from
|
||||
libc to kernel:
|
||||
|
||||
|
||||
libc:
|
||||
r0 fn
|
||||
r1 child_stack
|
||||
@ -92,14 +92,14 @@ ENTRY (__clone)
|
||||
r4 ptid
|
||||
r5 tls
|
||||
r6 ctid
|
||||
|
||||
|
||||
kernel:
|
||||
r0 flags
|
||||
r1 child_stack [same as libc]
|
||||
r2 ptid
|
||||
r3 ctid
|
||||
r4 tls
|
||||
|
||||
|
||||
Plus the callee-saves as described at .Lthread_start, below. */
|
||||
{
|
||||
move r32, r0
|
||||
@ -151,9 +151,9 @@ ENTRY (__clone)
|
||||
movei r1, EINVAL
|
||||
j SYSCALL_ERROR_NAME
|
||||
}
|
||||
|
||||
|
||||
/* This function expects to receive:
|
||||
|
||||
|
||||
sp: the top of a valid stack area
|
||||
r30: clone() flags
|
||||
r31: the argument to pass to the user function
|
||||
|
@ -143,7 +143,7 @@ ENTRY (__setcontext)
|
||||
mtspr EX_CONTEXT_0_1, r12
|
||||
iret
|
||||
jrp lr /* keep the backtracer happy */
|
||||
|
||||
|
||||
.Lsigreturn:
|
||||
/* This is a context obtained from a signal handler.
|
||||
Perform a full restore by pushing the context
|
||||
|
@ -46,7 +46,7 @@ ENTRY (__swapcontext)
|
||||
|
||||
/* Save the current context. */
|
||||
jal __getcontext
|
||||
|
||||
|
||||
/* Tear down the frame and restore r0, r1, and lr. */
|
||||
{
|
||||
BNEZ r0, .Lerror
|
||||
|
Loading…
Reference in New Issue
Block a user