about summary refs log tree commit diff
path: root/sysdeps/alpha/stxcpy.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-10-12 00:56:05 +0000
committerUlrich Drepper <drepper@redhat.com>1996-10-12 00:56:05 +0000
commit1f64ac13c02e70285e26a0572d9393a3ee0f9ad8 (patch)
tree8f146d2ac4d9c1afb5206d403352d7889a006891 /sysdeps/alpha/stxcpy.S
parentb33f91e91da81059b388c8f8ee0d0024212eb180 (diff)
downloadglibc-1f64ac13c02e70285e26a0572d9393a3ee0f9ad8.tar.gz
glibc-1f64ac13c02e70285e26a0572d9393a3ee0f9ad8.tar.xz
glibc-1f64ac13c02e70285e26a0572d9393a3ee0f9ad8.zip
update from main archive 961011
Fri Oct 11 19:13:34 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale/Makefile (CPPFLAGS): Set CHARMAP_PATH to
 	"$(i18ndir)/charmaps".

Fri Oct 11 22:12:41 1996  NIIBE Yutaka  <gniibe@mri.co.jp>

	* sysdeps/unix/sysv/linux/sys/procfs.h: Include <asm/user.h>
	to get definition of FPU description struct.

	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=socket] (subdir_headers):
	Add net/if.h, net/if_ppp.h, net/ppp-comp.h, net/ppp_defs.h,
 	net/if_arp.h, and net/route.h.
	* sysdeps/unix/sysv/linux/net/if_arp.h: New file.
	* sysdeps/unix/sysv/linux/net/route.h: New file.

Fri Oct 11 14:49:13 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/stub/readdir_r.c: New file.  We need a stub version.
	* sysdeps/stub/e_acosl.c: Likewise.
	* sysdeps/stub/e_asinl.c: Likewise.
	* sysdeps/stub/e_atan2l.c: Likewise.
	* sysdeps/stub/e_expl.c: Likewise.
	* sysdeps/stub/e_fmodl.c: Likewise.
	* sysdeps/stub/e_log10l.c: Likewise.
	* sysdeps/stub/e_logl.c: Likewise.
	* sysdeps/stub/e_sqrtl.c: Likewise.
	* sysdeps/stub/s_atanl.c: Likewise.
	* sysdeps/stub/s_log1pl.c: Likewise.

	* Makefile (distribute): Add nsswitch.h and netgroup.h.

	* nss/Makefile (generated): db-netgrp.c is not generated.

	* sysdeps/alpha/Dist: Add stxcpy.S and stxncpy.S.

	* Make-dist (+out): Add $(dont_distribute).

Fri Oct 11 00:27:18 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* stdio-common/Makefile (routines): Add tmpnam_r.

Fri Oct 11 05:32:51 1996  Ulrich Drepper  <drepper@cygnus.com>

	* version.h: Bump version to 1.96.

Fri Oct 11 18:13:47 1996  Andreas Jaeger  <aj@arthur.pfalz.de>

	* stdio-common/tst-printf.c: Some more cleanups.

Fri Oct 11 02:48:02 1996  Ulrich Drepper  <drepper@cygnus.com>

	* resolv/arpa/nameser.h: Update from bind-4.9.5-T6B.
	* resolv/resolv.h: Likewise.
	* resolv/gethnamaddr.c: Likewise.
	* resolv/res_comp.c: Likewise.
	* resolv/res_debug.c: Likewise.
	* resolv/res_init.c: Likewise.
	* resolv/res_send.c: Likewise.
	* resolv/Banner: Update version number.

	* nss/nss_dns/dns-host.c: Update according to change in
	resolv/gethnamaddr.c.

Fri Oct 10 20:52:28 1996  Ralph Loader  <loader@maths.ox.ac.uk>

	* crypt/md5.c (md5_stream): When reading the block in several
	pieces append to instead of replace previously read data.

Thu Oct 10 15:53:17 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/stxcpy.S ($unaligned): In single word copy, correct
	last-byte-written bit for source word misalignment.
	* sysdeps/alpha/strchr.c: Removed.  There is now an assembler
 	version.

Thu Oct 10 17:17:23 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sunrpc/Makefile (rpcsvc): Remove yp.x.  The corrected version
	comes with glibc-nis.
	* sunrpc/rpcsvc/yp.x: Removed.

	* nss/nss_files/files-netgr.c (_nss_netgroup_parseline): Test
	for *CURSOR to be NULL and dump a core if yes.

Thu Oct  9 20:09:53 1996  Matthew Jacob  <mjacob@feral.com>

	* sysdeps/unix/sysv/linux/alpha/brk.S: Define _ERRNO_H before
	including <errnos.h> to get error numbers.

Thu Oct 10 14:00:01 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/sigcontext.h: Moved file...
	* sysdeps/unix/sysv/linux/sigcontext.h: ...to here.  So the
	Alpha people find a correct file.
	* sysdeps/libm-ieee754/w_cabs.c: We cannot make __cabsl simply
	an alias of __cabs since the structures have different names.
	* sysdeps/libm-ieee754/w_log10.c: Fix typo in weak_alias.
	Reported by Matthew Jacob <mjacob@feral.com>.

	simply a wrapper around the <linux/elfcore.h> file since the
Diffstat (limited to 'sysdeps/alpha/stxcpy.S')
-rw-r--r--sysdeps/alpha/stxcpy.S33
1 files changed, 17 insertions, 16 deletions
diff --git a/sysdeps/alpha/stxcpy.S b/sysdeps/alpha/stxcpy.S
index e381b704cd..49dd8e5c64 100644
--- a/sysdeps/alpha/stxcpy.S
+++ b/sysdeps/alpha/stxcpy.S
@@ -36,7 +36,7 @@ Cambridge, MA 02139, USA.  */
    Furthermore, v0, a3-a5, t11, and t12 are untouched.
 */
 
-/* This is generally scheduled for the EV5, but should still be pretty 
+/* This is generally scheduled for the EV5, but should still be pretty
    good for the EV4 too.  */
 
 #include <sysdep.h>
@@ -65,7 +65,7 @@ stxcpy_aligned:
 	lda	t2, -1		# e1    : build a mask against false zero
 	mskqh	t2, a1, t2	# e0    :   detection in the src word
 	mskqh	t1, a1, t3	# e0    :
-	ornot	t1, t2, t2	# .. e1 : 
+	ornot	t1, t2, t2	# .. e1 :
 	mskql	t0, a1, t0	# e0    : assemble the first output word
 	cmpbge	zero, t2, t7	# .. e1 : bits set iff null found
 	or	t0, t3, t1	# e0    :
@@ -99,9 +99,9 @@ $a_eos:
 	/* We're doing a partial word store and so need to combine
 	   our source and original destination words.  */
 	ldq_u	t0, 0(a0)	# e0    :
-	subq	t8, 1, t6	# .. e1 : 
+	subq	t8, 1, t6	# .. e1 :
 	zapnot	t1, t6, t1	# e0    : clear src bytes >= null
-	or	t8, t6, t7	# .. e1 : 
+	or	t8, t6, t7	# .. e1 :
 	zap	t0, t7, t0	# e0    : clear dst bytes <= null
 	or	t0, t1, t1	# e1    :
 
@@ -156,13 +156,13 @@ $u_head:
 	or	t1, t4, t1	# .. e1 :
 	mskqh	t1, a0, t1	# e0    :
 	or	t0, t1, t1	# e1    :
-	
+
 	or	t1, t6, t6	# e0    :
 	cmpbge	zero, t6, t7	# .. e1 :
 	lda	t6, -1		# e0    : for masking just below
 	bne	t7, $u_final	# .. e1 :
 
-	mskql	t6, a1, t6		# e0    : mask out the bits we have 
+	mskql	t6, a1, t6		# e0    : mask out the bits we have
 	or	t6, t2, t2		# e1    :   already extracted before
 	cmpbge	zero, t2, t7		# e0    :   testing eos
 	bne	t7, $u_late_head_exit	# .. e1 (zdb)
@@ -181,7 +181,7 @@ $u_head:
 
 	/* Unaligned copy main loop.  In order to avoid reading too much,
 	   the loop is structured to detect zeros in aligned source words.
-	   This has, unfortunately, effectively pulled half of a loop 
+	   This has, unfortunately, effectively pulled half of a loop
 	   iteration out into the head and half into the tail, but it does
 	   prevent nastiness from accumulating in the very thing we want
 	   to run as fast as possible.
@@ -207,7 +207,7 @@ $u_loop:
 
 	/* We've found a zero somewhere in the source word we just read.
 	   If it resides in the lower half, we have one (probably partial)
-	   word to write out, and if it resides in the upper half, we 
+	   word to write out, and if it resides in the upper half, we
 	   have one full and one partial word left to write out.
 
 	   On entry to this basic block:
@@ -234,7 +234,7 @@ $u_final:
 	negq	t7, t6		# e0    : isolate low bit set
 	and	t6, t7, t8	# e1    :
 
-	and	t8, 0x80, t6	# e0    : avoid dest word load if we can 
+	and	t8, 0x80, t6	# e0    : avoid dest word load if we can
 	bne	t6, 1f		# .. e1 (zdb)
 
 	ldq_u	t0, 0(a0)	# e0    :
@@ -256,7 +256,7 @@ $unaligned:
 	and	a0, 7, t4	# .. e1 : find dest misalignment
 	and	a1, 7, t5	# e0    : find src misalignment
 
-	/* Conditionally load the first destination word and a bytemask 
+	/* Conditionally load the first destination word and a bytemask
 	   with 0xff indicating that the destination byte is sacrosanct.  */
 
 	mov	zero, t0	# .. e1 :
@@ -290,18 +290,19 @@ $unaligned:
 
 	negq	t7, t6		# .. e1 : build bitmask of bytes <= zero
 	and	t6, t7, t8	# e0    :
-	nop			# .. e1 :
+	and	a1, 7, t5	# .. e1 :
 	subq	t8, 1, t6	# e0    :
 	or	t6, t8, t7	# e1    :
+	srl	t8, t5, t8	# e0    : adjust final null return value
 
-	zapnot	t2, t7, t2	# e0    : prepare source word; mirror changes
+	zapnot	t2, t7, t2	# .. e1 : prepare source word; mirror changes
 	and	t1, t2, t1	# e1    : to source validity mask
-	extql	t2, a1, t2	# e0    :
+	extql	t2, a1, t2	# .. e0 :
 	extql	t1, a1, t1	# e0    :
 
-	andnot	t0, t2, t0	# e0    : zero place for source to reside
+ 	andnot	t0, t2, t0	# .. e1 : zero place for source to reside
 	or	t0, t1, t1	# e1    : and put it there
-	stq_u	t1, 0(a0)	# e0    :
-	ret	(t9)		# .. e1 :
+	stq_u	t1, 0(a0)	# .. e0 :
+	ret	(t9)
 
 	.end __stxcpy