aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog71
-rw-r--r--posix/sys/types.h1
-rw-r--r--sunrpc/rpc/rpc.h4
-rw-r--r--sunrpc/rpc/svc.h2
-rw-r--r--sysdeps/alpha/__math.h2
-rw-r--r--sysdeps/alpha/_mcount.S9
-rw-r--r--sysdeps/alpha/bb_init_func.S18
-rw-r--r--sysdeps/alpha/bsd-setjmp.S8
-rw-r--r--sysdeps/alpha/copysign.S (renamed from sysdeps/unix/sysv/linux/alpha/profil-counter.h)21
-rw-r--r--sysdeps/alpha/divl.S2
-rw-r--r--sysdeps/alpha/divlu.S2
-rw-r--r--sysdeps/alpha/divq.S2
-rw-r--r--sysdeps/alpha/divqu.S2
-rw-r--r--sysdeps/alpha/divrem.h (renamed from sysdeps/alpha/divrem.S)23
-rw-r--r--sysdeps/alpha/fabs.S27
-rw-r--r--sysdeps/alpha/ffs.S5
-rw-r--r--sysdeps/alpha/htonl.S24
-rw-r--r--sysdeps/alpha/htons.S12
-rw-r--r--sysdeps/alpha/memchr.S7
-rw-r--r--sysdeps/alpha/reml.S2
-rw-r--r--sysdeps/alpha/remlu.S2
-rw-r--r--sysdeps/alpha/remq.S2
-rw-r--r--sysdeps/alpha/remqu.S2
-rw-r--r--sysdeps/alpha/setjmp.S13
-rw-r--r--sysdeps/alpha/strlen.S5
-rw-r--r--sysdeps/alpha/udiv_qrnnd.S12
-rw-r--r--sysdeps/generic/sigset.h4
-rw-r--r--sysdeps/libm-ieee754/s_scalbnf.c4
-rw-r--r--sysdeps/unix/alpha/sysdep.h52
-rw-r--r--sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h18
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk.S11
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S10
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S10
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c275
-rw-r--r--sysdeps/unix/sysv/linux/alpha/llseek.S49
-rw-r--r--sysdeps/unix/sysv/linux/alpha/pipe.S5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/speed.c1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statbuf.h75
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S25
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list3
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.S7
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h3
42 files changed, 586 insertions, 246 deletions
diff --git a/ChangeLog b/ChangeLog
index 03542f6aca..ebd7bebe14 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,74 @@
+Wed May 22 00:40:50 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/unix/sysv/linux/alpha/speed.c (speeds): Add entry for
+ 460800 baud.
+
+ * sysdeps/unix/sysv/linux/alpha/statbuf.h: New file.
+
+ * sysdeps/unix/sysv/linux/Makefile (headers): Add
+ alpha/ptrace.h.
+ * sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h: New file.
+
+ * sysdeps/libm-ieee754/s_scalbnf.c: Call __scalbnf instead of
+ scalbnf.
+
+ * sysdeps/generic/sigset.h (__sigismember, __sigaddset,
+ __sigdelset): Add declaration to keep ANSI compilers quiet.
+
+ * sysdeps/alpha/__math.h (cabs): Remove underscores from struct
+ __cabs_complex member names in call to __hypot().
+
+ * sysdeps/alpha/copysign.S, sysdeps/alpha/fabs.S: New files.
+
+ * sysdeps/alpha/divrem.h: Renamed from sysdeps/alpha/divrem.S to avoid
+ name collision with math library.
+
+ * sysdeps/alpha/divl.S, sysdeps/alpha/divlu.S, sysdeps/alpha/divq.S,
+ sysdeps/alpha/divqu.S, sysdeps/alpha/reml.S, sysdeps/alpha/remlu.S,
+ sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Include divrem.h instead
+ of divrem.S.
+
+ * sysdeps/unix/alpha/sysdep.h: Include regdef.h. Define LEAF macro
+ to simplify declaration of leaf functions.
+
+ * sysdeps/alpha/_mcount.S, sysdeps/alpha/bb_init_func.S,
+ sysdeps/alpha/bsd-setjmp.S, sysdeps/alpha/ffs.S,
+ sysdeps/alpha/htonl.S, sysdeps/alpha/htons.S, sysdeps/alpha/memchr.S,
+ sysdeps/alpha/setjmp.S, sysdeps/alpha/strlen.S,
+ sysdeps/alpha/udiv_qrnnd.S, sysdeps/unix/sysv/linux/alpha/brk.S,
+ sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S,
+ sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S,
+ sysdeps/unix/sysv/linux/alpha/pipe.S,
+ sysdeps/unix/sysv/linux/sigsuspend.S,
+ sysdeps/unix/sysv/linux/alpha/syscall.S,
+ sysdeps/unix/sysv/linux/alpha/sysdep.S: Remove include of regdef.h.
+ sysdep.h includes it now. Replace ENTRY by LEAF with appropriate
+ framesize declaration. Replace "lda pv,sym/jsr pv" by "jsr sym".
+
+ * sysdeps/unix/sysv/linux/alpha/sysdep.h (NO_UNDERSCORES): Don't
+ define.
+
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list: Added getsockopt,
+ ptrace, and sysctl.
+
+ * sysdeps/unix/sysv/linux/alpha/profil-counter.h: File removed.
+
+ * sysdeps/unix/sysv/linux/alpha/ioperm.c: Modify to support
+ dynamic recognition of platform type.
+ (_bus_base): New function.
+
+ * sysdeps/unix/sysv/linux/alpha/llseek.S: New file.
+
+ * sunrpc/rpc/rpc.h, sunrpc/rpc/svc.h: Avoid nested comments since
+ they produce ugly warnings by gcc.
+
+ * posix/sys/types.h [__USE_MISC]: Add typedef for ulong.
+
+Wed Mar 27 10:26:21 1996 David Mosberger-Tang <davidm@azstarnet.com>
+
+ * sysdeps/alpha/setjmp.S: Must establish global pointer before
+ address of __sigsetjmp_aux can be loaded.
+
Wed May 22 22:10:01 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/canonicalize.c: New file.
diff --git a/posix/sys/types.h b/posix/sys/types.h
index 8c65ae053b..8265fa0cb6 100644
--- a/posix/sys/types.h
+++ b/posix/sys/types.h
@@ -64,6 +64,7 @@ __BEGIN_DECLS
#ifdef __USE_MISC
/* Old compatibility names for C types. */
+typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
#endif
diff --git a/sunrpc/rpc/rpc.h b/sunrpc/rpc/rpc.h
index 83a124a3ed..d11e83e0a9 100644
--- a/sunrpc/rpc/rpc.h
+++ b/sunrpc/rpc/rpc.h
@@ -56,7 +56,9 @@
* Uncomment-out the next line if you are building the rpc library with
* DES Authentication (see the README file in the secure_rpc/ directory).
*/
-/*#include <rpc/auth_des.h> /* protocol for des style cred */
+#if 0
+#include <rpc/auth_des.h> /* protocol for des style cred */
+#endif
/* Server side only remote procedure callee */
#include <rpc/svc.h> /* service manager and multiplexer */
diff --git a/sunrpc/rpc/svc.h b/sunrpc/rpc/svc.h
index 3cb07ef3f3..4f4f546f11 100644
--- a/sunrpc/rpc/svc.h
+++ b/sunrpc/rpc/svc.h
@@ -151,7 +151,7 @@ struct svc_req {
* u_long prog;
* u_long vers;
* void (*dispatch)();
- * int protocol; /* like TCP or UDP, zero means do not register
+ * int protocol; like TCP or UDP, zero means do not register
*/
extern bool_t svc_register();
diff --git a/sysdeps/alpha/__math.h b/sysdeps/alpha/__math.h
index 9aea9d7097..50d8ac3b0a 100644
--- a/sysdeps/alpha/__math.h
+++ b/sysdeps/alpha/__math.h
@@ -46,7 +46,7 @@ extern __inline double
cabs (struct __cabs_complex __z)
{
extern double __hypot (double, double);
- return __hypot(__z.__x, __z.__y);
+ return __hypot(__z.x, __z.y);
}
#endif
diff --git a/sysdeps/alpha/_mcount.S b/sysdeps/alpha/_mcount.S
index 2d6e2ed532..7944544e18 100644
--- a/sysdeps/alpha/_mcount.S
+++ b/sysdeps/alpha/_mcount.S
@@ -34,18 +34,15 @@ holds the return address of the function's caller (selfpc and frompc,
respectively in gmon.c language...). */
#include <sysdep.h>
-#ifdef __linux__
-# include <alpha/regdef.h>
-#else
-# include <regdef.h>
-#endif
#undef ret /* discard `ret' as defined in sysdep.h */
.set noat
.set noreorder
-ENTRY(_mcount)
+LEAF(_mcount, 0xb0)
+ .prologue 0
+
subq sp, 0xb0, sp
stq a0, 0x00(sp)
mov ra, a0 # a0 = caller-pc
diff --git a/sysdeps/alpha/bb_init_func.S b/sysdeps/alpha/bb_init_func.S
index 9bf985ccc0..cd860b8303 100644
--- a/sysdeps/alpha/bb_init_func.S
+++ b/sysdeps/alpha/bb_init_func.S
@@ -24,11 +24,6 @@ caller-saved (call-used) registers (except for argument registers
a1-a5). */
#include <sysdep.h>
-#ifdef __linux__
-# include <alpha/regdef.h>
-#else
-# include <regdef.h>
-#endif
/*
* These offsets should match with "struct bb" declared in gcc/libgcc2.c.
@@ -40,12 +35,19 @@ a1-a5). */
.set noreorder
ENTRY(__bb_init_func)
+ .prologue 0
+
ldq t0, ZERO_WORD(a0) /* t0 <- blocks->zero_word */
beq t0, init /* not initialized yet -> */
ret
+
+ .end __bb_init_func
+
+LEAF(init, 0x38)
+ subq sp, 0x38, sp
+ .prologue 0
-init: subq sp, 0x38, sp
stq pv, 0x30(sp)
br pv, 1f
1: ldgp gp, 0(pv)
@@ -81,5 +83,5 @@ init: subq sp, 0x38, sp
leave: ldq pv, 0x30(sp)
addq sp, 0x38, sp
ret
-
- .end __bb_init_func
+
+ .end init
diff --git a/sysdeps/alpha/bsd-setjmp.S b/sysdeps/alpha/bsd-setjmp.S
index 470f7bc47d..113bc47c88 100644
--- a/sysdeps/alpha/bsd-setjmp.S
+++ b/sysdeps/alpha/bsd-setjmp.S
@@ -23,8 +23,8 @@ Cambridge, MA 02139, USA. */
#include <sysdep.h>
-ENTRY (setjmp)
- lda $27, __sigsetjmp /* Load address to jump to. */
- bis $31, 1, $17 /* Pass a second argument of one. */
- jmp $31, ($27), __sigsetjmp /* Call __sigsetjmp. */
+ENTRY(setjmp)
+ lda $27, __sigsetjmp /* Load address to jump to. */
+ bis $31, 1, $17 /* Pass a second argument of one. */
+ jmp $31, ($27), __sigsetjmp /* Call __sigsetjmp. */
.end setjmp
diff --git a/sysdeps/unix/sysv/linux/alpha/profil-counter.h b/sysdeps/alpha/copysign.S
index 6ab5a88c49..9e9dff3ed0 100644
--- a/sysdeps/unix/sysv/linux/alpha/profil-counter.h
+++ b/sysdeps/alpha/copysign.S
@@ -1,7 +1,6 @@
-/* Low-level statistical profiling support function. Mostly POSIX.1 version.
-Copyright (C) 1996 Free Software Foundation, Inc.
-Contributed by David Mosberger <davidm@azstarnet.com>
+/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
+Contributed by David Mosberger <davidm@azstarnet.com>
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
@@ -18,11 +17,13 @@ License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
-#include <asm/sigcontext.h>
+#include <sysdep.h>
+
+ENTRY(__copysign)
+ .prologue 0
+ cpys $f17,$f16,$f0
+ ret
+
+ .end __copysign
-void
-profil_counter (int signal, long a1, long a2, long a3, long a4, long a5,
- struct sigcontext_struct sc)
-{
- profil_count((void *) sc.sc_pc);
-}
+weak_alias(__copysign, copysign)
diff --git a/sysdeps/alpha/divl.S b/sysdeps/alpha/divl.S
index 7dbb5048c7..6990665937 100644
--- a/sysdeps/alpha/divl.S
+++ b/sysdeps/alpha/divl.S
@@ -3,4 +3,4 @@
#define SIGNED 1
#define FUNC_NAME __divl
-#include "divrem.S"
+#include "divrem.h"
diff --git a/sysdeps/alpha/divlu.S b/sysdeps/alpha/divlu.S
index 9cc71da308..ee96c95008 100644
--- a/sysdeps/alpha/divlu.S
+++ b/sysdeps/alpha/divlu.S
@@ -3,4 +3,4 @@
#define SIGNED 0
#define FUNC_NAME __divlu
-#include "divrem.S"
+#include "divrem.h"
diff --git a/sysdeps/alpha/divq.S b/sysdeps/alpha/divq.S
index f7af8d62a3..bde3425f37 100644
--- a/sysdeps/alpha/divq.S
+++ b/sysdeps/alpha/divq.S
@@ -3,4 +3,4 @@
#define SIGNED 1
#define FUNC_NAME __divq
-#include "divrem.S"
+#include "divrem.h"
diff --git a/sysdeps/alpha/divqu.S b/sysdeps/alpha/divqu.S
index faf2932cb5..72dcf971dd 100644
--- a/sysdeps/alpha/divqu.S
+++ b/sysdeps/alpha/divqu.S
@@ -3,4 +3,4 @@
#define SIGNED 0
#define FUNC_NAME __divqu
-#include "divrem.S"
+#include "divrem.h"
diff --git a/sysdeps/alpha/divrem.S b/sysdeps/alpha/divrem.h
index e6293bf355..ee7f64ef1e 100644
--- a/sysdeps/alpha/divrem.S
+++ b/sysdeps/alpha/divrem.h
@@ -103,10 +103,29 @@ clobbered (assembly temporary), anything else must be saved. */
.ent FUNC_NAME
.globl FUNC_NAME
+#define FRAME_SIZE 0x30
+
.align 5
FUNC_NAME:
-# define FRAME_SIZE 0x30
- .frame sp,FRAME_SIZE,ra,0
+#ifdef PROF
+ lda sp, -0x18(sp)
+ stq ra, 0x00(sp)
+ stq pv, 0x08(sp)
+ stq gp, 0x10(sp)
+
+ br AT, 1f
+1: ldgp gp, 0(AT)
+ lda AT, _mcount
+
+ mov retaddr, ra
+ jsr AT, (AT), _mcount
+
+ ldq ra, 0x00(sp)
+ ldq pv, 0x08(sp)
+ ldq gp, 0x10(sp)
+ lda sp, 0x18(sp)
+#endif
+ .frame sp, FRAME_SIZE, ra, 0
lda sp,-FRAME_SIZE(sp)
.prologue 1
stq arg1,0x00(sp)
diff --git a/sysdeps/alpha/fabs.S b/sysdeps/alpha/fabs.S
new file mode 100644
index 0000000000..88e64b4718
--- /dev/null
+++ b/sysdeps/alpha/fabs.S
@@ -0,0 +1,27 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+Contributed by David Mosberger <davidm@azstarnet.com>
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB. If
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
+Cambridge, MA 02139, USA. */
+
+#include <sysdep.h>
+
+ENTRY(fabs)
+ .prologue 0
+ cpys $f31,$f16,$f0
+ ret
+
+ .end fabs
diff --git a/sysdeps/alpha/ffs.S b/sysdeps/alpha/ffs.S
index 7676b85aaa..7cf6281682 100644
--- a/sysdeps/alpha/ffs.S
+++ b/sysdeps/alpha/ffs.S
@@ -22,11 +22,6 @@ Cambridge, MA 02139, USA. */
architecture. */
#include <sysdep.h>
-#ifdef __linux__
-# include <alpha/regdef.h>
-#else
-#include <regdef.h>
-#endif
.set noreorder
.set noat
diff --git a/sysdeps/alpha/htonl.S b/sysdeps/alpha/htonl.S
index d0bf7e1718..8c1c700212 100644
--- a/sysdeps/alpha/htonl.S
+++ b/sysdeps/alpha/htonl.S
@@ -17,22 +17,18 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#include <sysdep.h>
-#ifdef __linux__
-# include <alpha/regdef.h>
-#else
-#include <regdef.h>
-#endif
ENTRY(__htonl)
- extlh a0,5,t1 # t1 = dd000000
- zap a0,0xfd,t2 # t2 = 0000cc00
- sll t2,5,t2 # t2 = 00198000
- s8addl t2,t1,t1 # t1 = ddcc0000
- zap a0,0xfb,t2 # t2 = 00bb0000
- srl t2,8,t2 # t2 = 0000bb00
- extbl a0,3,v0 # v0 = 000000aa
- or t1,v0,v0 # v0 = ddcc00aa
- or t2,v0,v0 # v0 = ddccbbaa
+ .prologue 0
+ extlh a0, 5, t1 # t1 = dd000000
+ zap a0, 0xfd, t2 # t2 = 0000cc00
+ sll t2, 5, t2 # t2 = 00198000
+ s8addl t2, t1, t1 # t1 = ddcc0000
+ zap a0, 0xfb, t2 # t2 = 00bb0000
+ srl t2, 8, t2 # t2 = 0000bb00
+ extbl a0, 3, v0 # v0 = 000000aa
+ or t1, v0, v0 # v0 = ddcc00aa
+ or t2, v0, v0 # v0 = ddccbbaa
ret
.end __htonl
diff --git a/sysdeps/alpha/htons.S b/sysdeps/alpha/htons.S
index 6e18c7c441..cb22b21661 100644
--- a/sysdeps/alpha/htons.S
+++ b/sysdeps/alpha/htons.S
@@ -17,16 +17,12 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */