[PATCH] mpn/sh/*.s: Transform to m4-ccas format.

takasi-y at ops.dti.ne.jp takasi-y at ops.dti.ne.jp
Sun Jun 10 15:41:27 CEST 2007


Hello,

In version 4.2.1,
cofigure script which seeks PROLOGUE() or so failes to detect that sh(SuperH)
has native code, because files under mpn/sh/ are plain assembler file.

I changed some files to make them processed via m4-ccas.
All "make check" tests passed at least on sh3(=a variant of sh)linux platform.

Copyright notice has left untouched, because this is only formatting change.
The new file, mpn/sh/sh-defs.m4, carries FSF's copyright notice as other m4
files which are used as a reference do.

Plese notify me if my copyright notice or explicit assignment is needed.
I don't think there is my own property, though.

Best regards,
/yoshii

2007-06-10  Takashi YOSHII <takasi-y at ops.dti.ne.jp>

	* configure.in (sh-*-*): Unify sh,2,3 and 4. And add include_mpn.
	* mpn/sh/sh-defs.m4: New file.
	* mpn/sh/add_n.s: Transform to m4-ccas format, and rename to *.asm.
	* mpn/sh/add_n.s,mpn/sh/sub_n.s: Ditto.
	* mpn/sh/sh2/addmul_1.s,mpn/sh/sh2/mul_1.s, mpn/sh/sh2/submul_1.s: Ditto.

diff --git a/configure.in b/configure.in
index 450cc92..37382a8 100644
--- a/configure.in
+++ b/configure.in
@@ -1058,8 +1058,15 @@ case $host in
     ;;
 
 
-  sh-*-*)   path="sh" ;;
-  sh2-*-*)  path="sh/sh2 sh" ;;
+  sh-*-* | sh[234]*-*-*)
+echo "include_mpn(\`sh/sh-defs.m4')" >> $gmp_tmpconfigm4i
+    case $host in
+      sh2*)
+        path="sh/sh2 sh" ;;
+      *)
+        path="sh" ;;
+    esac
+    ;;
 
 
   *sparc*-*-*)
diff --git a/mpn/sh/add_n.asm b/mpn/sh/add_n.asm
new file mode 100644
index 0000000..44eef7d
--- /dev/null
+++ b/mpn/sh/add_n.asm
@@ -0,0 +1,47 @@
+dnl  SH mpn_add_n -- Add two limb vectors of the same length > 0 and store
+dnl  sum in a third limb vector.
+
+dnl  Copyright 1995, 1997, 2000 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 by
+dnl  the Free Software Foundation; either version 2.1 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; see the file COPYING.LIB.  If not, write to
+dnl  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl  Boston, MA 02110-1301, USA.
+
+include(`../config.m4')
+
+C INPUT PARAMETERS
+C res_ptr	r4
+C s1_ptr	r5
+C s2_ptr	r6
+C size		r7
+
+ASM_START()
+PROLOGUE(mpn_add_n)
+	mov	#0,r3		! clear cy save reg
+
+Loop:	mov.l	@r5+,r1
+	mov.l	@r6+,r2
+	shlr	r3		! restore cy
+	addc	r2,r1
+	movt	r3		! save cy
+	mov.l	r1, at r4
+	dt	r7
+	bf.s	Loop
+	 add	#4,r4
+
+	rts
+	mov	r3,r0		! return carry-out from most sign. limb
+EPILOGUE(mpn_add_n)
diff --git a/mpn/sh/add_n.s b/mpn/sh/add_n.s
deleted file mode 100644
index b37905c..0000000
--- a/mpn/sh/add_n.s
+++ /dev/null
@@ -1,47 +0,0 @@
-! SH __gmpn_add_n -- Add two limb vectors of the same length > 0 and store
-! sum in a third limb vector.
-
-! Copyright 1995, 1997, 2000 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP Library is free software; you can redistribute it and/or modify
-! it under the terms of the GNU Lesser General Public License as published by
-! the Free Software Foundation; either version 2.1 of the License, or (at your
-! option) any later version.
-
-! The GNU MP 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 Lesser General Public
-! License for more details.
-
-! You should have received a copy of the GNU Lesser General Public License
-! along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-! the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-! MA 02110-1301, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr	r4
-! s1_ptr	r5
-! s2_ptr	r6
-! size		r7
-
-	.text
-	.align 2
-	.global	___gmpn_add_n
-___gmpn_add_n:
-	mov	#0,r3		! clear cy save reg
-
-Loop:	mov.l	@r5+,r1
-	mov.l	@r6+,r2
-	shlr	r3		! restore cy
-	addc	r2,r1
-	movt	r3		! save cy
-	mov.l	r1, at r4
-	dt	r7
-	bf.s	Loop
-	 add	#4,r4
-
-	rts
-	mov	r3,r0		! return carry-out from most sign. limb
diff --git a/mpn/sh/sh-defs.m4 b/mpn/sh/sh-defs.m4
new file mode 100644
index 0000000..9623d07
--- /dev/null
+++ b/mpn/sh/sh-defs.m4
@@ -0,0 +1,38 @@
+divert(-1)
+
+dnl  m4 macros for SH assembler.
+dnl 
+dnl  Copyright 2007 Free Software Foundation, Inc.
+dnl  
+dnl  This file is part of the GNU MP Library.
+dnl  
+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 by
+dnl  the Free Software Foundation; either version 2.1 of the License, or (at
+dnl  your option) any later version.
+dnl  
+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  
+dnl  You should have received a copy of the GNU Lesser General Public License
+dnl  along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
+dnl  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl  Boston, MA 02110-1301, USA.
+
+changecom(!)
+
+define(`PROLOGUE_cpu',
+m4_assert_numargs(1)
+`	TEXT
+	ALIGN(2)
+	GLOBL	`$1' GLOBL_ATTR
+	TYPE(`$1',`function')
+`$1'LABEL_SUFFIX')
+
+define(`EPILOGUE_cpu',
+m4_assert_numargs(1)
+`')
+
+divert
diff --git a/mpn/sh/sh2/addmul_1.asm b/mpn/sh/sh2/addmul_1.asm
new file mode 100644
index 0000000..56de6ec
--- /dev/null
+++ b/mpn/sh/sh2/addmul_1.asm
@@ -0,0 +1,53 @@
+dnl  SH2 mpn_addmul_1 -- Multiply a limb vector with a limb and add
+dnl  the result to a second limb vector.
+
+dnl  Copyright 1995, 2000 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 by
+dnl  the Free Software Foundation; either version 2.1 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; see the file COPYING.LIB.  If not, write to
+dnl  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl  Boston, MA 02110-1301, USA.
+
+include(`../config.m4')
+
+C INPUT PARAMETERS
+C res_ptr	r4
+C s1_ptr	r5
+C size		r6
+C s2_limb	r7
+
+ASM_START()
+PROLOGUE(mpn_addmul_1)
+	mov	#0,r2		! cy_limb = 0
+	mov	#0,r0		! Keep r0 = 0 for entire loop
+	clrt
+
+Loop:	mov.l	@r5+,r3
+	dmulu.l	r3,r7
+	sts	macl,r1
+	addc	r2,r1		! lo_prod += old cy_limb
+	sts	mach,r2		! new cy_limb = hi_prod
+	mov.l	@r4,r3
+	addc	r0,r2		! cy_limb += T, T = 0
+	addc	r3,r1
+	addc	r0,r2		! cy_limb += T, T = 0
+	dt	r6
+	mov.l	r1, at r4
+	bf.s	Loop
+	add	#4,r4
+
+	rts
+	mov	r2,r0
+EPILOGUE(mpn_addmul_1)
diff --git a/mpn/sh/sh2/addmul_1.s b/mpn/sh/sh2/addmul_1.s
deleted file mode 100644
index b013520..0000000
--- a/mpn/sh/sh2/addmul_1.s
+++ /dev/null
@@ -1,53 +0,0 @@
-! SH2 __gmpn_addmul_1 -- Multiply a limb vector with a limb and add
-! the result to a second limb vector.
-
-! Copyright 1995, 2000 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP Library is free software; you can redistribute it and/or modify
-! it under the terms of the GNU Lesser General Public License as published by
-! the Free Software Foundation; either version 2.1 of the License, or (at your
-! option) any later version.
-
-! The GNU MP 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 Lesser General Public
-! License for more details.
-
-! You should have received a copy of the GNU Lesser General Public License
-! along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-! the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-! MA 02110-1301, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr	r4
-! s1_ptr	r5
-! size		r6
-! s2_limb	r7
-
-	.text
-	.align 1
-	.global	___gmpn_addmul_1
-___gmpn_addmul_1:
-	mov	#0,r2		! cy_limb = 0
-	mov	#0,r0		! Keep r0 = 0 for entire loop
-	clrt
-
-Loop:	mov.l	@r5+,r3
-	dmulu.l	r3,r7
-	sts	macl,r1
-	addc	r2,r1		! lo_prod += old cy_limb
-	sts	mach,r2		! new cy_limb = hi_prod
-	mov.l	@r4,r3
-	addc	r0,r2		! cy_limb += T, T = 0
-	addc	r3,r1
-	addc	r0,r2		! cy_limb += T, T = 0
-	dt	r6
-	mov.l	r1, at r4
-	bf.s	Loop
-	add	#4,r4
-
-	rts
-	mov	r2,r0
diff --git a/mpn/sh/sh2/mul_1.asm b/mpn/sh/sh2/mul_1.asm
new file mode 100644
index 0000000..ae24f82
--- /dev/null
+++ b/mpn/sh/sh2/mul_1.asm
@@ -0,0 +1,50 @@
+dnl  SH2 mpn_mul_1 -- Multiply a limb vector with a limb and store
+dnl  the result in a second limb vector.
+
+dnl  Copyright 1995, 2000 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 by
+dnl  the Free Software Foundation; either version 2.1 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; see the file COPYING.LIB.  If not, write to
+dnl  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl  Boston, MA 02110-1301, USA.
+
+include(`../config.m4')
+
+C INPUT PARAMETERS
+C res_ptr	r4
+C s1_ptr	r5
+C size		r6
+C s2_limb	r7
+
+ASM_START()
+PROLOGUE(mpn_mul_1)
+	mov	#0,r2		! cy_limb = 0
+	mov	#0,r0		! Keep r0 = 0 for entire loop
+	clrt
+
+Loop:	mov.l	@r5+,r3
+	dmulu.l	r3,r7
+	sts	macl,r1
+	addc	r2,r1
+	sts	mach,r2
+	addc	r0,r2		! propagate carry to cy_limb (dt clobbers T)
+	dt	r6
+	mov.l	r1, at r4
+	bf.s	Loop
+	add	#4,r4
+
+	rts
+	mov	r2,r0
+EPILOGUE(mpn_mul_1)
diff --git a/mpn/sh/sh2/mul_1.s b/mpn/sh/sh2/mul_1.s
deleted file mode 100644
index 9d27e06..0000000
--- a/mpn/sh/sh2/mul_1.s
+++ /dev/null
@@ -1,50 +0,0 @@
-! SH2 __gmpn_mul_1 -- Multiply a limb vector with a limb and store
-! the result in a second limb vector.
-
-! Copyright 1995, 2000 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP Library is free software; you can redistribute it and/or modify
-! it under the terms of the GNU Lesser General Public License as published by
-! the Free Software Foundation; either version 2.1 of the License, or (at your
-! option) any later version.
-
-! The GNU MP 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 Lesser General Public
-! License for more details.
-
-! You should have received a copy of the GNU Lesser General Public License
-! along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-! the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-! MA 02110-1301, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr	r4
-! s1_ptr	r5
-! size		r6
-! s2_limb	r7
-
-	.text
-	.align 1
-	.global	___gmpn_mul_1
-___gmpn_mul_1:
-	mov	#0,r2		! cy_limb = 0
-	mov	#0,r0		! Keep r0 = 0 for entire loop
-	clrt
-
-Loop:	mov.l	@r5+,r3
-	dmulu.l	r3,r7
-	sts	macl,r1
-	addc	r2,r1
-	sts	mach,r2
-	addc	r0,r2		! propagate carry to cy_limb (dt clobbers T)
-	dt	r6
-	mov.l	r1, at r4
-	bf.s	Loop
-	add	#4,r4
-
-	rts
-	mov	r2,r0
diff --git a/mpn/sh/sh2/submul_1.asm b/mpn/sh/sh2/submul_1.asm
new file mode 100644
index 0000000..7205f2d
--- /dev/null
+++ b/mpn/sh/sh2/submul_1.asm
@@ -0,0 +1,53 @@
+dnl  SH2 mpn_submul_1 -- Multiply a limb vector with a limb and subtract
+dnl  the result from a second limb vector.
+
+dnl  Copyright 1995, 2000 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 by
+dnl  the Free Software Foundation; either version 2.1 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; see the file COPYING.LIB.  If not, write to
+dnl  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl  Boston, MA 02110-1301, USA.
+
+include(`../config.m4')
+
+C INPUT PARAMETERS
+C res_ptr	r4
+C s1_ptr	r5
+C size		r6
+C s2_limb	r7
+
+ASM_START()
+PROLOGUE(mpn_submul_1)
+	mov	#0,r2		! cy_limb = 0
+	mov	#0,r0		! Keep r0 = 0 for entire loop
+	clrt
+
+Loop:	mov.l	@r5+,r3
+	dmulu.l	r3,r7
+	sts	macl,r1
+	addc	r2,r1		! lo_prod += old cy_limb
+	sts	mach,r2		! new cy_limb = hi_prod
+	mov.l	@r4,r3
+	addc	r0,r2		! cy_limb += T, T = 0
+	subc	r3,r1
+	addc	r0,r2		! cy_limb += T, T = 0
+	dt	r6
+	mov.l	r1, at r4
+	bf.s	Loop
+	add	#4,r4
+
+	rts
+	mov	r2,r0
+EPILOGUE(mpn_submul_1)
diff --git a/mpn/sh/sh2/submul_1.s b/mpn/sh/sh2/submul_1.s
deleted file mode 100644
index 50faf63..0000000
--- a/mpn/sh/sh2/submul_1.s
+++ /dev/null
@@ -1,53 +0,0 @@
-! SH2 __gmpn_submul_1 -- Multiply a limb vector with a limb and subtract
-! the result from a second limb vector.
-
-! Copyright 1995, 2000 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP Library is free software; you can redistribute it and/or modify
-! it under the terms of the GNU Lesser General Public License as published by
-! the Free Software Foundation; either version 2.1 of the License, or (at your
-! option) any later version.
-
-! The GNU MP 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 Lesser General Public
-! License for more details.
-
-! You should have received a copy of the GNU Lesser General Public License
-! along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-! the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-! MA 02110-1301, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr	r4
-! s1_ptr	r5
-! size		r6
-! s2_limb	r7
-
-	.text
-	.align 1
-	.global	___gmpn_submul_1
-___gmpn_submul_1:
-	mov	#0,r2		! cy_limb = 0
-	mov	#0,r0		! Keep r0 = 0 for entire loop
-	clrt
-
-Loop:	mov.l	@r5+,r3
-	dmulu.l	r3,r7
-	sts	macl,r1
-	addc	r2,r1		! lo_prod += old cy_limb
-	sts	mach,r2		! new cy_limb = hi_prod
-	mov.l	@r4,r3
-	addc	r0,r2		! cy_limb += T, T = 0
-	subc	r3,r1
-	addc	r0,r2		! cy_limb += T, T = 0
-	dt	r6
-	mov.l	r1, at r4
-	bf.s	Loop
-	add	#4,r4
-
-	rts
-	mov	r2,r0
diff --git a/mpn/sh/sub_n.asm b/mpn/sh/sub_n.asm
new file mode 100644
index 0000000..c68e396
--- /dev/null
+++ b/mpn/sh/sub_n.asm
@@ -0,0 +1,47 @@
+dnl  SH mpn_sub_n -- Subtract two limb vectors of the same length > 0 and store
+dnl  difference in a third limb vector.
+
+dnl  Copyright 1995, 1997, 2000 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 by
+dnl  the Free Software Foundation; either version 2.1 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; see the file COPYING.LIB.  If not, write to
+dnl  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl  Boston, MA 02110-1301, USA.
+
+include(`../config.m4')
+
+C INPUT PARAMETERS
+C res_ptr	r4
+C s1_ptr	r5
+C s2_ptr	r6
+C size		r7
+
+ASM_START()
+PROLOGUE(mpn_sub_n)
+	mov	#0,r3		! clear cy save reg
+
+Loop:	mov.l	@r5+,r1
+	mov.l	@r6+,r2
+	shlr	r3		! restore cy
+	subc	r2,r1
+	movt	r3		! save cy
+	mov.l	r1, at r4
+	dt	r7
+	bf.s	Loop
+	 add	#4,r4
+
+	rts
+	mov	r3,r0		! return carry-out from most sign. limb
+EPILOGUE(mpn_sub_n)
diff --git a/mpn/sh/sub_n.s b/mpn/sh/sub_n.s
deleted file mode 100644
index db27a31..0000000
--- a/mpn/sh/sub_n.s
+++ /dev/null
@@ -1,47 +0,0 @@
-! SH __gmpn_sub_n -- Subtract two limb vectors of the same length > 0 and store
-! difference in a third limb vector.
-
-! Copyright 1995, 1997, 2000 Free Software Foundation, Inc.
-
-! This file is part of the GNU MP Library.
-
-! The GNU MP Library is free software; you can redistribute it and/or modify
-! it under the terms of the GNU Lesser General Public License as published by
-! the Free Software Foundation; either version 2.1 of the License, or (at your
-! option) any later version.
-
-! The GNU MP 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 Lesser General Public
-! License for more details.
-
-! You should have received a copy of the GNU Lesser General Public License
-! along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
-! the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-! MA 02110-1301, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr	r4
-! s1_ptr	r5
-! s2_ptr	r6
-! size		r7
-
-	.text
-	.align 2
-	.global	___gmpn_sub_n
-___gmpn_sub_n:
-	mov	#0,r3		! clear cy save reg
-
-Loop:	mov.l	@r5+,r1
-	mov.l	@r6+,r2
-	shlr	r3		! restore cy
-	subc	r2,r1
-	movt	r3		! save cy
-	mov.l	r1, at r4
-	dt	r7
-	bf.s	Loop
-	 add	#4,r4
-
-	rts
-	mov	r3,r0		! return carry-out from most sign. limb


More information about the gmp-bugs mailing list