[Gmp-commit] /var/hg/gmp: 2 new changesets

mercurial at gmplib.org mercurial at gmplib.org
Wed Nov 2 11:26:32 CET 2011


details:   /var/hg/gmp/rev/5077906e3209
changeset: 14403:5077906e3209
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Wed Nov 02 11:23:26 2011 +0100
description:
New s390_32 shifting code.

details:   /var/hg/gmp/rev/36a19f556397
changeset: 14404:36a19f556397
user:      Torbjorn Granlund <tege at gmplib.org>
date:      Wed Nov 02 11:23:45 2011 +0100
description:
*** empty log message ***

diffstat:

 ChangeLog               |   16 +++++
 mpn/s390_32/lshift.asm  |  133 ++++++++++++++++++++++++++++++++++++++++++++
 mpn/s390_32/lshiftc.asm |  145 ++++++++++++++++++++++++++++++++++++++++++++++++
 mpn/s390_32/rshift.asm  |  127 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 421 insertions(+), 0 deletions(-)

diffs (truncated from 440 to 300 lines):

diff -r d60b0a9068cd -r 36a19f556397 ChangeLog
--- a/ChangeLog	Tue Nov 01 13:35:59 2011 +0100
+++ b/ChangeLog	Wed Nov 02 11:23:45 2011 +0100
@@ -1,3 +1,19 @@
+2011-11-02  Torbjorn Granlund  <tege at gmplib.org>
+
+	* mpn/s390_32/lshift.asm: New file.
+	* mpn/s390_32/rshift.asm: New file.
+	* mpn/s390_32/lshiftc.asm: New file.
+
+2011-10-31  Torbjorn Granlund  <tege at gmplib.org>
+
+	* mpn/powerpc64/sqr_diagonal.asm: Move from here...
+	* mpn/powerpc64/mode32/sqr_diagonal.asm: ...to here.
+
+	* mpn/powerpc64/mode64/sqr_diag_addlsh1.asm: New file.
+
+	* mpn/s390_64/sqr_basecase.asm: Rewrite sqr_diag_addlsh1 code.
+	* mpn/s390_32/esame/sqr_basecase.asm: Likewise.
+
 2011-10-29  Torbjorn Granlund  <tege at gmplib.org>
 
 	* mpn/s390_64/lshift.asm: Complete rewrite.
diff -r d60b0a9068cd -r 36a19f556397 mpn/s390_32/lshift.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/s390_32/lshift.asm	Wed Nov 02 11:23:45 2011 +0100
@@ -0,0 +1,133 @@
+dnl  S/390-32 mpn_lshift.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+
+dnl  This file is part of the GNU MP Library.
+
+dnl  The GNU MP Library is free software; you can redistribute it and/or modify
+dnl  it under the terms of the GNU Lesser General Public License as published
+dnl  by the Free Software Foundation; either version 3 of the License, or (at
+dnl  your option) any later version.
+
+dnl  The GNU MP Library is distributed in the hope that it will be useful, but
+dnl  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+dnl  License for more details.
+
+dnl  You should have received a copy of the GNU Lesser General Public License
+dnl  along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C            cycles/limb
+C z900		 6
+C z990	         3
+C z9		 ?
+C z10		 ?
+C z196		 ?
+
+C TODO
+C  *
+
+C INPUT PARAMETERS
+define(`rp',	`%r2')
+define(`up',	`%r3')
+define(`n',	`%r4')
+define(`cnt',	`%r5')
+
+ASM_START()
+PROLOGUE(mpn_lshift)
+	lr	%r1, n
+	sll	%r1, 2
+	stm	%r6, %r12, 24(%r15)
+	la	up, 0(%r1,up)		C put up near end of U
+	la	rp, 0(%r1,rp)		C put rp near end of R
+	ahi	up, -20
+	ahi	rp, -16
+	lhi	%r8, 32
+	sr	%r8, cnt
+	l	%r12, 16(up)
+	srl	%r12, 0(%r8)		C return value
+	lhi	%r7, 3
+	nr	%r7, n
+	srl	n, 2
+	je	L(b0)
+	chi	%r7, 2
+	jl	L(b1)
+	je	L(b2)
+
+L(b3):	l	%r10, 16(up)
+	l	%r11, 12(up)
+	l	%r9,   8(up)
+	ahi	up, -8
+	lr	%r8, %r11
+	sldl	%r10, 0(cnt)
+	sldl	%r8,  0(cnt)
+	st	%r10, 12(rp)
+	st	%r8,   8(rp)
+	ahi	rp, -8
+	ltr	n, n
+	je	L(end)
+	j	L(top)
+
+L(b2):	l	%r10, 16(up)
+	l	%r11, 12(up)
+	ahi	up, -4
+	sldl	%r10, 0(cnt)
+	st	%r10, 12(rp)
+	ahi	rp, -4
+	ltr	n, n
+	je	L(end)
+	j	L(top)
+
+L(b1):	ltr	n, n
+	je	L(end)
+	j	L(top)
+
+L(b0):	l	%r10,16(up)
+	l	%r8, 12(up)
+	l	%r6,  8(up)
+	l	%r0,  4(up)
+	ahi	up, -12
+	lr	%r11, %r8
+	lr	%r9,  %r6
+	lr	%r7,  %r0
+	sldl	%r10,0(cnt)
+	sldl	%r8, 0(cnt)
+	sldl	%r6, 0(cnt)
+	st	%r10, 12(rp)
+	st	%r8,   8(rp)
+	st	%r6,   4(rp)
+	ahi	rp, -12
+	ahi	n, -1
+	je	L(end)
+
+	ALIGN(8)
+L(top):	l	%r10, 16(up)
+	l	%r8,  12(up)
+	l	%r6,   8(up)
+	l	%r0,   4(up)
+	l	%r1,   0(up)
+	lr	%r11, %r8
+	lr	%r9,  %r6
+	lr	%r7,  %r0
+	ahi	up, -16
+	sldl	%r10, 0(cnt)
+	sldl	%r8,  0(cnt)
+	sldl	%r6,  0(cnt)
+	sldl	%r0,  0(cnt)
+	st	%r10, 12(rp)
+	st	%r8,   8(rp)
+	st	%r6,   4(rp)
+	st	%r0,   0(rp)
+	ahi	rp, -16
+	brct	n, L(top)
+
+L(end):	l	%r10, 16(up)
+	sll	%r10, 0(cnt)
+	st	%r10, 12(rp)
+	
+	lr	%r2, %r12
+	lm	%r6, %r12, 24(%r15)
+	br	%r14
+EPILOGUE()
diff -r d60b0a9068cd -r 36a19f556397 mpn/s390_32/lshiftc.asm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpn/s390_32/lshiftc.asm	Wed Nov 02 11:23:45 2011 +0100
@@ -0,0 +1,145 @@
+dnl  S/390-32 mpn_lshiftc.
+
+dnl  Copyright 2011 Free Software Foundation, Inc.
+
+dnl  This file is part of the GNU MP Library.
+
+dnl  The GNU MP Library is free software; you can redistribute it and/or modify
+dnl  it under the terms of the GNU Lesser General Public License as published
+dnl  by the Free Software Foundation; either version 3 of the License, or (at
+dnl  your option) any later version.
+
+dnl  The GNU MP Library is distributed in the hope that it will be useful, but
+dnl  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+dnl  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+dnl  License for more details.
+
+dnl  You should have received a copy of the GNU Lesser General Public License
+dnl  along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.
+
+include(`../config.m4')
+
+C            cycles/limb
+C z900		 7
+C z990	         3.375
+C z9		 ?
+C z10		 ?
+C z196		 ?
+
+C TODO
+C  *
+
+C INPUT PARAMETERS
+define(`rp',	`%r2')
+define(`up',	`%r3')
+define(`n',	`%r4')
+define(`cnt',	`%r5')
+
+ASM_START()
+PROLOGUE(mpn_lshiftc)
+	lr	%r1, n
+	sll	%r1, 2
+	stm	%r6, %r13, 24(%r15)
+	la	up, 0(%r1,up)		C put up near end of U
+	la	rp, 0(%r1,rp)		C put rp near end of R
+	ahi	up, -20
+	ahi	rp, -16
+	lhi	%r8, 32
+	sr	%r8, cnt
+	l	%r12, 16(up)
+	srl	%r12, 0(%r8)		C return value
+	lhi	%r13, -1
+	lhi	%r7, 3
+	nr	%r7, n
+	srl	n, 2
+	je	L(b0)
+	chi	%r7, 2
+	jl	L(b1)
+	je	L(b2)
+
+L(b3):	l	%r10, 16(up)
+	l	%r11, 12(up)
+	l	%r9,   8(up)
+	ahi	up, -8
+	lr	%r8, %r11
+	sldl	%r10, 0(cnt)
+	sldl	%r8,  0(cnt)
+	xr	%r10, %r13
+	xr	%r8, %r13
+	st	%r10, 12(rp)
+	st	%r8,   8(rp)
+	ahi	rp, -8
+	ltr	n, n
+	je	L(end)
+	j	L(top)
+
+L(b2):	l	%r10, 16(up)
+	l	%r11, 12(up)
+	ahi	up, -4
+	sldl	%r10, 0(cnt)
+	xr	%r10, %r13
+	st	%r10, 12(rp)
+	ahi	rp, -4
+	ltr	n, n
+	je	L(end)
+	j	L(top)
+
+L(b1):	ltr	n, n
+	je	L(end)
+	j	L(top)
+
+L(b0):	l	%r10,16(up)
+	l	%r8, 12(up)
+	l	%r6,  8(up)
+	l	%r0,  4(up)
+	ahi	up, -12
+	lr	%r11, %r8
+	lr	%r9,  %r6
+	lr	%r7,  %r0
+	sldl	%r10,0(cnt)
+	sldl	%r8, 0(cnt)
+	sldl	%r6, 0(cnt)
+	xr	%r10, %r13
+	xr	%r8, %r13
+	xr	%r6, %r13
+	st	%r10, 12(rp)
+	st	%r8,   8(rp)
+	st	%r6,   4(rp)
+	ahi	rp, -12
+	ahi	n, -1
+	je	L(end)
+
+	ALIGN(8)
+L(top):	l	%r10, 16(up)
+	l	%r8,  12(up)
+	l	%r6,   8(up)
+	l	%r0,   4(up)
+	l	%r1,   0(up)
+	lr	%r11, %r8
+	lr	%r9,  %r6
+	lr	%r7,  %r0
+	ahi	up, -16
+	sldl	%r10, 0(cnt)
+	sldl	%r8,  0(cnt)
+	sldl	%r6,  0(cnt)
+	sldl	%r0,  0(cnt)
+	xr	%r10, %r13
+	xr	%r8, %r13
+	xr	%r6, %r13
+	xr	%r0, %r13
+	st	%r10, 12(rp)
+	st	%r8,   8(rp)
+	st	%r6,   4(rp)
+	st	%r0,   0(rp)
+	ahi	rp, -16
+	brct	n, L(top)
+


More information about the gmp-commit mailing list