patches/glibc/ports-2.10.1/540-alpha-fix-memchr.patch
author Esben Haabendal <esben.haabendal@prevas.dk>
Fri Oct 07 15:06:44 2011 +0200 (2011-10-07)
changeset 2721 7b64746b0ab3
permissions -rw-r--r--
scripts/functions: Fix CT_ExtractGit function.

Change CT_ExtractGit so that it clones the repository, instead of just
symlinking it. After cloning, any given ref is checked out, or if no
ref is given, the HEAD of the repository is checked out.

This makes CT_Extract behave similar for git repositories as it does
for tarballs, so that it for example can be used for passing glibc-ports
as a git repository.

Signed-off-by: "Esben Haabendal" <esben.haabendal@prevas.dk>
[yann.morin.1998@anciens.enib.fr: fix incomplete var rename]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 2009-07-27  Aurelien Jarno  <aurelien@aurel32.net>
     2 
     3 	* sysdeps/alpha/memchr.S: Use prefetch load.
     4 	* sysdeps/alpha/alphaev6/memchr.S: Likewise.
     5 
     6 diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/alpha/alphaev6/memchr.S glibc-2.10.1/glibc-ports-2.10.1/sysdeps/alpha/alphaev6/memchr.S
     7 --- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/alpha/alphaev6/memchr.S	2009-05-16 10:36:20.000000000 +0200
     8 +++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/alpha/alphaev6/memchr.S	2009-11-13 00:51:15.000000000 +0100
     9 @@ -127,7 +127,7 @@
    10          cmpbge  $31, $1, $2	# E :
    11          bne     $2, $found_it	# U :
    12  	# At least one byte left to process.
    13 -	ldq	$1, 8($0)	# L :
    14 +	ldq	$31, 8($0)	# L :
    15  	subq	$5, 1, $18	# E : U L U L
    16  
    17  	addq	$0, 8, $0	# E :
    18 @@ -143,38 +143,38 @@
    19  	and	$4, 8, $4	# E : odd number of quads?
    20  	bne	$4, $odd_quad_count # U :
    21  	# At least three quads remain to be accessed
    22 -	mov	$1, $4		# E : L U L U : move prefetched value to correct reg
    23 +	nop			# E : L U L U : move prefetched value to correct reg
    24  
    25  	.align	4
    26  $unrolled_loop:
    27 -	ldq	$1, 8($0)	# L : prefetch $1
    28 -	xor	$17, $4, $2	# E :
    29 -	cmpbge	$31, $2, $2	# E :
    30 -	bne	$2, $found_it	# U : U L U L
    31 +	ldq	$1, 0($0)	# L : load quad
    32 +	xor	$17, $1, $2	# E :
    33 +	ldq	$31, 8($0)	# L : prefetch next quad
    34 +	cmpbge	$31, $2, $2	# E : U L U L
    35  
    36 +	bne	$2, $found_it	# U :
    37  	addq	$0, 8, $0	# E :
    38  	nop			# E :
    39  	nop			# E :
    40 -	nop			# E :
    41  
    42  $odd_quad_count:
    43 +	ldq	$1, 0($0)	# L : load quad
    44  	xor	$17, $1, $2	# E :
    45 -	ldq	$4, 8($0)	# L : prefetch $4
    46 +	ldq	$31, 8($0)	# L : prefetch $4
    47  	cmpbge	$31, $2, $2	# E :
    48 -	addq	$0, 8, $6	# E :
    49  
    50 +	addq	$0, 8, $6	# E :
    51  	bne	$2, $found_it	# U :
    52  	cmpult	$6, $18, $6	# E :
    53  	addq	$0, 8, $0	# E :
    54 -	nop			# E :
    55  
    56  	bne	$6, $unrolled_loop # U :
    57 -	mov	$4, $1		# E : move prefetched value into $1
    58  	nop			# E :
    59  	nop			# E :
    60 -
    61 -$final:	subq	$5, $0, $18	# E : $18 <- number of bytes left to do
    62  	nop			# E :
    63 +
    64 +$final:	ldq	$1, 0($0)	# L : load last quad
    65 +	subq	$5, $0, $18	# E : $18 <- number of bytes left to do
    66  	nop			# E :
    67  	bne	$18, $last_quad	# U :
    68  
    69 diff -durN glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/alpha/memchr.S glibc-2.10.1/glibc-ports-2.10.1/sysdeps/alpha/memchr.S
    70 --- glibc-2.10.1.orig/glibc-ports-2.10.1/sysdeps/alpha/memchr.S	2009-05-16 10:36:20.000000000 +0200
    71 +++ glibc-2.10.1/glibc-ports-2.10.1/sysdeps/alpha/memchr.S	2009-11-13 00:51:15.000000000 +0100
    72 @@ -119,7 +119,7 @@
    73  
    74  	# At least one byte left to process.
    75  
    76 -	ldq	t0, 8(v0)	# e0	:
    77 +	ldq	zero, 8(v0)	# e0	: prefetch next quad
    78  	subq	t4, 1, a2	# .. e1 :
    79  	addq	v0, 8, v0	#-e0	:
    80  
    81 @@ -138,19 +138,19 @@
    82  
    83  	# At least three quads remain to be accessed
    84  
    85 -	mov	t0, t3		# e0	: move prefetched value to correct reg
    86 -
    87  	.align	4
    88  $unrolled_loop:
    89 -	ldq	t0, 8(v0)	#-e0	: prefetch t0
    90 -	xor	a1, t3, t1	# .. e1 :
    91 -	cmpbge	zero, t1, t1	# e0	:
    92 -	bne	t1, $found_it	# .. e1 :
    93 +	ldq	t0, 0(v0)	# e0	: load quad
    94 +	xor	a1, t0, t1	# .. e1 :
    95 +	ldq	zero, 8(v0)	# e0	: prefetch next quad
    96 +	cmpbge	zero, t1, t1	# .. e1:
    97 +	bne	t1, $found_it	# e0    :
    98  
    99 -	addq	v0, 8, v0	#-e0	:
   100 +	addq	v0, 8, v0	#    e1	:
   101  $odd_quad_count:
   102 +	ldq	t0, 0(v0)	# e0	: load quad
   103  	xor	a1, t0, t1	# .. e1 :
   104 -	ldq	t3, 8(v0)	# e0	: prefetch t3
   105 +	ldq	zero, 8(v0)	# e0	: prefetch next quad
   106  	cmpbge	zero, t1, t1	# .. e1 :
   107  	addq	v0, 8, t5	#-e0	:
   108  	bne	t1, $found_it	# .. e1	:
   109 @@ -159,8 +159,8 @@
   110  	addq	v0, 8, v0	# .. e1 :
   111  	bne	t5, $unrolled_loop #-e1 :
   112  
   113 -	mov	t3, t0		# e0	: move prefetched value into t0
   114 -$final:	subq	t4, v0, a2	# .. e1	: a2 <- number of bytes left to do
   115 +$final:	ldq	t0, 0(v0)	# e0	: load last quad
   116 +	subq	t4, v0, a2	# .. e1	: a2 <- number of bytes left to do
   117  	bne	a2, $last_quad	# e1	:
   118  
   119  $not_found:
   120 diff -durN glibc-2.10.1.orig/ports/sysdeps/alpha/alphaev6/memchr.S glibc-2.10.1/ports/sysdeps/alpha/alphaev6/memchr.S
   121 diff -durN glibc-2.10.1.orig/ports/sysdeps/alpha/memchr.S glibc-2.10.1/ports/sysdeps/alpha/memchr.S