Commit Graph

3250 Commits

Author SHA1 Message Date
Alexandre Oliva
ef055a744e * configure.in: Add mips64* support.
* configure: Rebuilt.
* sysdeps/mips/bits/endian.h: Make it bi-endian.
* sysdeps/mips/mipsel/bits/endian.h: Removed.
* sysdeps/mips/mips64/n32/el/bits/endian.h: Removed.
* sysdeps/mips/mips64/n64/el/bits/endian.h: Removed.
* sysdeps/mips/mips32/Makefile (CC): Add -mabi=32.
* sysdeps/mips/mips64/n32/Makefile (CC): Add -mabi=n32.
* sysdeps/mips/mips64/n64/Makefile (CC): Add -mabi=64.
* sysdeps/mips/Implies: Moved wordsize-32 to...
* sysdeps/mips/mips32/Implies: New file.
* sysdeps/unix/mips/sysdep.h (PSEUDO_NOERRNO, PSEUDO_END_NOERRNO,
ret_NOERRNO): New.
(ret, PSEUDO_END): Moved past END.
(PSEUDO): Moved to...
* sysdeps/unix/mips/mips32/sysdep.h: New file.
* sysdeps/unix/mips/mips64/n32/sysdep.h: Removed #undef PSEUDO.
* sysdeps/unix/mips/mips64/n64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sysdep.h: Move to...
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: New file.
* sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h: New file.
2003-03-29 08:15:29 +00:00
Alexandre Oliva
7f3bcde0d1 * sysdeps/unix/sysv/linux/mips/clone.S (__thread_start):
Re-introduce ENTRY.
2003-03-29 08:01:57 +00:00
Alexandre Oliva
a9b0e91911 * sysdeps/unix/mips/sysdep.S: Include sys/asm.h. 2003-03-28 07:02:35 +00:00
Alexandre Oliva
faef8a3c25 * sysdeps/unix/sysv/linux/mips/configure: Rebuilt. 2003-03-28 06:11:03 +00:00
Roland McGrath
44acff5d04 2003-03-27 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_RET_NOERRNO): Use
	unconditional mov.  Remove nop.
2003-03-27 02:45:49 +00:00
Roland McGrath
227de9dd23 2003-03-27 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_VFORK_SYSCALL): Define for kernel 2.4 on arm.
	* sysdeps/unix/sysv/linux/arm/vfork.S: Elide compatibility code
	when __ASSUME_VFORK_SYSCALL is defined.
	* sysdeps/unix/sysv/linux/arm/mmap64.S: Likewise for
	__ASSUME_MMAP2_SYSCALL.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise for
	__ASSUME_REALTIME_SIGNALS.
2003-03-27 02:45:46 +00:00
Ulrich Drepper
49d354ccdc (struct siginfo): Avoid no-op padding element. 2003-03-26 23:41:57 +00:00
Ulrich Drepper
8eecb601ef (struct siginfo): Adjust timer info for what the kernel provides these days.
(struct sigevent): Add _tid field.
Define SIGEV_THREAD_ID.
Remove struct __pthread_attr_s forward declaration.
2003-03-26 04:48:10 +00:00
Andreas Schwab
97b729d379 Fix typos. 2003-03-25 23:40:18 +00:00
Andreas Schwab
64928a8889 Define ret_NOERRNO. 2003-03-25 23:15:40 +00:00
Ulrich Drepper
f30a759d97 (__TIMER_T_TYPE): Define as void*. 2003-03-25 21:59:17 +00:00
Alexandre Oliva
f4e9c08c59 * sysdeps/mips/sgidefs.h (_MIPS_ISA_MIPS32, _MIPS_ISA_MIPS64):
Define.
* sysdeps/mips/sys/asm.h: Test _MIPS_ISA against them on all
ISA tests.
(ALSZ, ALMASK, SZREG, REG_S, REG_L): Define based on ABI, not ISA.
(PTR_ADD, etc): Test _MIPS_SZPTR instead of _MIPS_SZLONG.
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Use _MIPS_SZPTR
to decide whether to add padding.
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Use _MIPS_SZPTR
to decide whether to add padding.
* sysdeps/unix/sysv/linux/mips/kernel_sigaction.h (struct
old_kernel_sigaction): Likewise.
2003-03-25 21:51:53 +00:00
Roland McGrath
e0dc73c1e3 2003-03-24 Daniel Jacobowitz <drow@mvista.com>
* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
	(DOARGS_5, DOARGS_6, DOARGS_7): Rewritten.
2003-03-25 09:44:29 +00:00
Ulrich Drepper
cf666e4bf9 INTERNAL_SYSCALL): Remove a1 from clobber list. 2003-03-24 19:00:28 +00:00
Ulrich Drepper
98f7320f07 Define PSEUDO_NOERRNO, PSEUDO_END_NOERRNO, and ret_NOERRNO. 2003-03-23 19:42:23 +00:00
Roland McGrath
fad367110e 2003-03-23 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/fpu/libm-test-ulps: Update.
	* sysdeps/arm/libm-test-ulps: Update.
	* sysdeps/hppa/fpu/libm-test-ulps: Update.
	* sysdeps/ia64/fpu/libm-test-ulps: Update.
	* sysdeps/mips/fpu/libm-test-ulps: Update.
	* sysdeps/powerpc/nofpu/libm-test-ulps: Update.
	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
	* sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
	* sysdeps/sh/sh4/fpu/libm-test-ulps: Update.
	* sysdeps/s390/fpu/libm-test-ulps: Update.
	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2003-03-23 00:52:10 +00:00
Andreas Schwab
c33a5b5124 Update. 2003-03-22 21:17:47 +00:00
Andreas Schwab
be1628459d Superceded by atomic.h. 2003-03-22 21:00:48 +00:00
Andreas Schwab
d9a3227e9c Atomic operations for m68020 and up. 2003-03-22 20:59:49 +00:00
Alexandre Oliva
cfd77e42b8 * sysdeps/mips/elf/ldsodefs.h: Add mips-specific elf64 relocation
data structures and macros.  Protect from multiple inclusion.
2003-03-22 15:07:05 +00:00
Alexandre Oliva
721e2474d6 * sysdeps/mips/dl-machine.h (ELF_MIPS_GNU_GOT1_MASK): Fix harmless
typo in #if test.
2003-03-22 12:50:46 +00:00
Alexandre Oliva
2b15a21180 * sysdeps/mips/mips64/memcpy.S: Fix porting bug that broke
unaligned copying of 8-15 bytes.  From Chris Demetriou
<cgd@broadcom.com>.  Fix label names.
* sysdeps/mips/mips64/memset.S: Fix label names.  Make similar
change as to memcpy.S.
* sysdeps/mips/memcpy.S: Formatting changes.
* sysdeps/mips/memset.S: Likewise.
2003-03-21 21:39:39 +00:00
Roland McGrath
4208b5c771 2003-03-21 Roland McGrath <roland@redhat.com>
* sysdeps/arm/sysdep.h (CALL_MCOUNT): Add trailing semicolon.
2003-03-21 20:51:59 +00:00
Roland McGrath
2f15520df9 2003-03-21 Daniel Jacobowitz <drow@mvista.com>
* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
	(SINGLE_THREAD_P_PIC): Use "reg" instead of "lr".
2003-03-21 20:49:58 +00:00
Alexandre Oliva
500308e11d * sysdeps/mips/mips64/memcpy.S, sysdeps/mips/mips64/memset.S: New.
* sysdeps/mips/memcpy.S, sysdeps/mips/memset.S: Update comments.
2003-03-21 19:44:24 +00:00
Alexandre Oliva
a5b668cc8a * sysdeps/mips/bits/setjmp.h: n32 has only 6 call-saved fpregs.
* sysdeps/mips/mips64/setjmp_aux.c (__sigsetjmp_aux): Adjust.
* sysdeps/mips/mips64/__longjmp.c (__longjmp): Likewise.
2003-03-20 22:29:44 +00:00
Alexandre Oliva
fe638fda3c * sysdeps/unix/sysv/linux/mips/pread.c: Don't break up offset
into high and low halves on n64.
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
2003-03-20 20:58:02 +00:00
Alexandre Oliva
1a58876cc7 * sysdeps/mips/ieee754.h: Remove excess #endif. 2003-03-20 17:59:45 +00:00
Alexandre Oliva
19ca28fb3f * sysdeps/mips/bits/setjmp.h: Store all N32 and N64 registers,
including pc, gp, sp and fp, as long long.
* sysdeps/mips/mips64/setjmp.S: Pass gp to __sigsetjmp_aux.
* sysdeps/mips/mips64/setjmp_aux.c: Adjust type of arguments.
Add gp argument, and set gp in the jmpbuf to it.
* sysdeps/mips/setjmp_aux.c: Revert to o32-only.
2003-03-20 10:27:55 +00:00
Alexandre Oliva
a8a1e840a1 * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S: Sign-extend
with a single instruction.
2003-03-20 07:54:56 +00:00
Alexandre Oliva
3d06657c53 * sysdeps/mips/dl-machine.h (ELF_MIPS_GNU_GOT1_MASK): Define
properly for n64.
(elf_machine_runtime_setup): Cast link_map pointer to Elf Addr
type.
(elf_machine_rel, elf_machine_rel_relative): Cast symidx to Elf
Word before comparing with gotsym.  Take reloc_addr argument as
void*.  Remove the code added for the compiler to drop any
alignment assumptions.
2003-03-20 07:54:21 +00:00
Alexandre Oliva
79bd056457 * sysdeps/mips/ieee754.h: New file, suitable to replace both
../ieee754/ieee754.h and ../ieee754/ldbl-128/ieee754.h, kept
mips-specific for now.
2003-03-20 00:39:32 +00:00
Alexandre Oliva
be1222911f * sysdeps/mips/mips64/Implies: Move wordsize-64 to...
* sysdeps/mips/mips64/n64/Implies: New file.
* sysdeps/mips/mips64/n64/Makefile: New file.
* sysdeps/mips/mips64/n64/el/bits/endian.h: New file.
* sysdeps/mips/mips64/n32/Implies: New file.
* sysdeps/mips/mips64/n32/Makefile: New file.
* sysdeps/mips/mips64/n32/el/bits/endian.h: New file.
* sysdeps/unix/mips/mips64/n32/sysdep.h: New file.
* sysdeps/unix/mips/mips64/n64/sysdep.h: New file.
* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: New file.
* sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c: New file.
* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: New file.
* sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h: New file.
* sysdeps/unix/sysv/linux/mips/mips64/llseek.c: New file.
* sysdeps/unix/sysv/linux/mips/mips64/recv.c: New file.
* sysdeps/unix/sysv/linux/mips/mips64/send.c: New file.
* sysdeps/unix/sysv/linux/mips/mips64/syscall.S: New file.
* sysdeps/unix/sysv/linux/mips/mips64/syscalls.list: New file.
* sysdeps/unix/sysv/linux/mips/mips64/umount.c: New file.
* sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S: New file.
2003-03-17 16:20:44 +00:00
Alexandre Oliva
d5510eee99 * sysdeps/unix/sysv/linux/configure.in (libc_cv_slibdir): Use
lib64 for mips64/n64 and lib32 for mips64/n32.
(ldd_rewrite_script): Needed for all mips64 configurations.
* sysdeps/unix/sysv/linux/configure: Rebuilt.
* sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed: New file.
* sysdeps/unix/sysv/linux/mips/mips64/Dist: New file.
2003-03-17 15:57:19 +00:00
Alexandre Oliva
7b44519fbc * sysdeps/mips/machine-gmon.h (MCOUNT): Define for N32 and N64 as
well.
2003-03-17 15:53:37 +00:00
Alexandre Oliva
bb4002d601 * sysdeps/unix/sysv/linux/mips/configure.in: New. Pre-process
asm/unistd.h into asm-unistd.h.
* sysdeps/unix/sysv/linux/mips/configure: Generated.
* sysdeps/unix/sysv/linux/mips/Makefile: Do custom processing
of syscall list.
* sysdeps/unix/sysv/linux/mips/sys/syscall.h: New file.
* sysdeps/unix/sysv/linux/mips/clone.S: Don't include
asm/unistd.h.
2003-03-17 15:50:05 +00:00
Alexandre Oliva
77f047e8a4 * sysdeps/unix/sysv/linux/mips/sys/ptrace.h: New file.
* sysdeps/unix/sysv/linux/mips/ptrace.c: New file.  Use long
long type for registers on n32.
2003-03-17 15:48:52 +00:00
Alexandre Oliva
ca2b264c24 * sysdeps/mips/bits/wordsize.h: New file, appropriate for all
3 ABIs.
* sysdeps/mips/mips64/gmp-mparam.h: New file.  Define
BITS_PER_LONGINT to __WORDSIZE, to match all 3 ABIs.
* sysdeps/mips/setjmp_aux.c (STRINGXP, REGS, PTRS): New macros.
(__sigsetjmp_aux): Use them.  Adjust for all 3 ABIs.
* sysdeps/mips/elf/start.S: Adjust for all 3 ABIs.
* sysdeps/unix/mips/brk.S: Likewise.
* sysdeps/unix/mips/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
* sysdeps/mips/bits/setjmp.h (__jmp_buf): Likewise.
* sysdeps/mips/sys/ucontext.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/profcs.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise.
* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise.
* sysdeps/mips/mips64/bsd-_setjmp.S: Likewise.
* sysdeps/mips/mips64/bsd-setjmp.S: Likewise.
* sysdeps/mips/mips64/setjmp.S: Likewise.
* sysdeps/mips/mips64/bits/setjmp.h: Deleted, obsolete.
* sysdeps/mips/mips64/soft-fp/sfp-machine.h: Use long long for
64-bit types.
2003-03-17 15:47:13 +00:00
Alexandre Oliva
e6631ae1ac * sysdeps/mips/fpu/bits/mathdef.h: New.
(__NO_LONG_DOUBLE_MATH): Define for o32.
2003-03-14 15:30:43 +00:00
Alexandre Oliva
b1a0b02eb4 * sysdeps/mips/sys/asm.h: Formatting changes.
(PTR, PTRSIZE, PTRLOG): Adjust for all 3 ABIs.
(CPADD): Define for all of them.
(SETUP_GP, SETUP_GPX, SETUP_GPX_L, SAVE_GP, SETUP_GP64,
SETUP_GPX64, SETUP_GPX64_L, RESTORE_GP64, USE_ALT_CP,
NARGSAVE): Define per ABI spec.
(END): Don't redefine.
(LONG_SLL, LONG_SLLV, LONG_SRL, LONG_SRLV, LONG_SRA,
LONG_SRAV): Remove duplicate definitions.
(PTR_ADD, PTR_ADDI, PTR_ADDU, PTR_ADDIU, PTR_SUB, PTR_SUBI,
PTR_SUBU, PTR_SUBIU, PTR_L, PTR_S, PTR_SLL, PTR_SLLV, PTR_SRL,
PTR_SRLV, PTR_SRA, PTR_SRAV, PTR_SCALESHIFT): Define for n32.
(PTR_LA): Define for all 3 ABIs.
2003-03-14 11:06:32 +00:00
Alexandre Oliva
0d5b725772 * sysdeps/mips/dl-machine.h: Include sys/asm.h.
(elf_machine_matches_host): Prevent linking of o32 and n32
together.
(elf_machine_dynamic): Document assumption on $gp.
(STRINGXP, STRINGXV, STRINGV_): New macros.
(elf_machine_load_address): Use them to stringize PTR_LA and
PTR_SUBU.
(ELF_DL_FRAME_SIZE, ELF_DL_SAVE_ARG_REGS,
ELF_DL_RESTORE_ARG_REGS, IFABIO32): New macros used in...
(_dl_runtime_resolve): Adjust it for all 3 ABIs.
(__dl_runtime_resolve): Cast the symtab initializer to the
right type.
(RTLD_START): Use it.  Adjust it for all 3 ABIs.
(elf_machine_rel): Mark as always_inline in RTLD_BOOTSTRAP.
Handle 64-bit R_MIPS_REL composite relocation and accept
R_MIPS_64 relocations to shift addend size to 64 bits.
Document assumption regarding local GOT entries.  Document
backward-compatibility departing from the ABI behavior in
applying relocations that reference section symbols, no longer
used.  Support relocations to mis-aligned offsets.
* sysdeps/mips/mips64/dl-machine.h: Deleted, obsolete.
2003-03-14 08:43:13 +00:00
Alexandre Oliva
d2e29db722 * sysdeps/unix/sysv/linux/mips/readelflib.c: New file. 2003-03-14 07:52:05 +00:00
Alexandre Oliva
ab35974e21 * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
(_KERNEL_NSIG_BPW): Define in terms of _MIPS_SZLONG.
* sysdeps/unix/sysv/linux/mips/sigaction.c: Define restore and
restore_rt functions.  Use them.
2003-03-14 07:49:05 +00:00
Alexandre Oliva
1dd24665be * sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Don't
.set mips2 on new abis.
2003-03-14 07:03:36 +00:00
Alexandre Oliva
2b2c3a2a04 * sysdeps/mips/memcpy.S: Map t0-3 to a4-7 on new abis.
* sysdeps/mips/memset.S: Likewise.
* sysdeps/mips/sys/regdef.h: Alias a4-7 or t0-3 to $8-11
depending on the ABI.
2003-03-14 05:31:28 +00:00
Alexandre Oliva
04a8368845 * sysdeps/mips/atomicity.h (exchange_and_add, atomic_add):
Don't .set mips2 on new abi.
(compare_and_swap): Likewise.  Support 64-bit longs on n64.
2003-03-14 05:30:31 +00:00
Roland McGrath
3e9a97580a 2003-03-13 Alexandre Oliva <aoliva@redhat.com>
* sysdeps/mips/add_n.S: Use L macro for local labels.
	* sysdeps/mips/addmul_1.S: Likewise.
	* sysdeps/mips/lshift.S: Likewise.
	* sysdeps/mips/memcpy.S: Likewise.
	* sysdeps/mips/memset.S: Likewise.
	* sysdeps/mips/mul_1.S: Likewise.
	* sysdeps/mips/rshift.S: Likewise.
	* sysdeps/mips/sub_n.S: Likewise.
	* sysdeps/mips/submul_1.S: Likewise.
	* sysdeps/mips/mips64/add_n.S: Likewise.
	* sysdeps/mips/mips64/addmul_1.S: Likewise.
	* sysdeps/mips/mips64/lshift.S: Likewise.
	* sysdeps/mips/mips64/mul_1.S: Likewise.
	* sysdeps/mips/mips64/rshift.S: Likewise.
	* sysdeps/mips/mips64/sub_n.S: Likewise.
	* sysdeps/mips/mips64/submul_1.S: Likewise.
	* sysdeps/unix/mips/sysdep.h: Define L() according to ABI
	conventions.  Define END as in sys/asm.h.
	* sysdeps/unix/mips/sysdep.S: Likewise.
	* sysdeps/unix/mips/wait.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/clone.S: Likewise.
2003-03-14 03:59:37 +00:00
Andreas Jaeger
28a8f69901 Introduce and use local
label .Lthread_start since current binutils don't allow branches
	to globally visible symbols.
2003-03-13 15:07:13 +00:00
Ulrich Drepper
ced89ec318 (__thread_start): Use jal instead of jalr to invoke subroutine so
restoring the $gp register will work properly.
2003-03-12 01:04:51 +00:00
Andreas Jaeger
3347c3ad39 2003-03-04 Guido Guenther <agx@sigxcpu.org>
* sysdeps/unix/sysv/linux/mips/syscalls.list: Remove unneeded
	stubs, we have INLINE_SYSCALL.
	* sysdeps/unix/sysv/linux/mips/bits/mman.h: Define MAP_POPULATE,
	MAP_NONBLOCK.
2003-03-07 09:46:33 +00:00