aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/sparc/sparc64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-06-29 22:05:27 +0000
committerUlrich Drepper <drepper@redhat.com>1997-06-29 22:05:27 +0000
commit5ae3e846b9e5dc0c32b581dff29aaf8587f89bfa (patch)
treed7042b5844f386c3843169e7bca1de968acfce5e /sysdeps/sparc/sparc64
parentbca973bcd954bb43e0d55b6fe3dd0648df52466a (diff)
downloadglibc-5ae3e846b9e5dc0c32b581dff29aaf8587f89bfa.tar
glibc-5ae3e846b9e5dc0c32b581dff29aaf8587f89bfa.tar.gz
glibc-5ae3e846b9e5dc0c32b581dff29aaf8587f89bfa.tar.bz2
glibc-5ae3e846b9e5dc0c32b581dff29aaf8587f89bfa.zip
1997-06-29 23:43 Ulrich Drepper <drepper@cygnus.com> * config.make.in: Define need-nopic-initfini. * configure.in: Write out nopic_initfini. * csu/Makefile: Generate no-PIC crt code if need-nopic-initfini is defined. * sysdeps/i386/fpu/fraiseexcpt.c: Correct FE_INEXACT case. * sysdeps/sparc/rem.S: Get trap definition properly. * sysdeps/sparc/sdiv.S: Likewise. * sysdeps/sparc/udiv.S: Likewise. * sysdeps/sparc/urem.S: Likewise. * sysdeps/sparc/setjmp.S: Include <sys/trap.h>. * sysdeps/sparc/sys/trap.h: New file. * sysdeps/unix/sysv/linux/sparc/sys/trap.h: New file. 1997-06-25 10:26 Thorsten Kukuk <kukuk@uni-paderborn.de> * sysdeps/generic/rpc/auth.h: Add xdr_opaque_auth declaration. 1997-06-29 10:34 Fila Kolodny <fila@ibi.com> * sysdeps/mach/hurd/select.c (__select): Change MACH_MSG_SIZE_INTEGER_T to MACH_MSG_TYPE_INTEGER_T. 1997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu> Initial sparc64-linux support: * configure.in: Recognize sparc64 as being different from sparc. * io/ftwtest-sh: Only invoke ld.so if it exists. * math/Makefile (LDLIBS-*): Change from libm to math/libm to get static tests to link. Honour $(omit-long-double-fcts) == yes. * math/libm-test.c (test_single_exception): The argument to fetestexcept is `int' not `fexcept_t'. * shlib-versions: Recognize sparc64. * signal/signal.h: Add typedef for stack_t. * stdio-common/_itoa.c: Defaulting UMUL_TIME==UDIV_TIME is broken. Attempt to fix up most of this by cleaning up assumptions below, but give up and change the defaults. * setjmp/longjmp.c: Moved to ... * sysdeps/generic/longjmp.c: ... here. * setjmp/sigjmp.c: Moved to ... * sysdeps/generic/sigjmp.c: ... here. * sysdeps/sparc/bsd-_setjmp.S [PIC]: There wasn't even valid asm here. Ought to fix up gas to catch these silly things properly. * sysdeps/sparc/bsd-setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc/errno.c: Remove. * sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h: Remove. * sysdeps/unix/sysv/linux/sparc/kernel_stat.h: Tell xstat about the unused fields. * sysdeps/sparc/sparc64/add_n.s: Moved to ... * sysdeps/sparc64/add_n.S: ... here. Fix up %g4 and stack usage. * sysdeps/sparc/sparc64/addmul_1.s: Likewise. * sysdeps/sparc/sparc64/gmp-mparam.h: Likewise. * sysdeps/sparc/sparc64/lshift.s: Likewise. * sysdeps/sparc/sparc64/mul_1.s: Likewise. * sysdeps/sparc/sparc64/rshift.s: Likewise. * sysdeps/sparc/sparc64/sub_n.s: Likewise. * sysdeps/sparc/sparc64/submul_1.s: Likewise. * sysdeps/sparc64/Implies: New file. * sysdeps/sparc64/Makefile: Likewise. * sysdeps/sparc64/bits/endian.h: Likewise. * sysdeps/sparc64/bsd-_setjmp.S: Likewise. * sysdeps/sparc64/bsd-setjmp.S: Likewise. * sysdeps/sparc64/dl-machine.h: Likewise. * sysdeps/sparc64/elf/Makefile: Likewise. * sysdeps/sparc64/elf/crtbegin.S: Likewise. * sysdeps/sparc64/elf/crtbeginS.S: Likewise. * sysdeps/sparc64/elf/crtend.S: Likewise. * sysdeps/sparc64/elf/crtendS.S: Likewise. * sysdeps/sparc64/elf/start.S: Likewise. * sysdeps/sparc64/fpu_control.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/Makefile: Likewise. * sysdeps/unix/sysv/linux/sparc64/__longjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/bits/setjmp.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/brk.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/clone.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/fork.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/getcontext.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/init-first.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/kernel_stat.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/longjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/pipe.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/profil-counter.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/setcontext.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/sigjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/sparc64/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/sparc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc64/ucontext.h: Likewise. 1997-06-28 16:28 H.J. Lu <hjl@gnu.ai.mit.edu> * configure.in: Add -nostartfiles -nostdlib when check for --version-script. 1997-06-28 12:03 H.J. Lu <hjl@gnu.ai.mit.edu> * sysdeps/powerpc/bits/endian.h: New file. 1997-06-28 20:52 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/syscalls.list: Add getresgid and setresgid.
Diffstat (limited to 'sysdeps/sparc/sparc64')
-rw-r--r--sysdeps/sparc/sparc64/add_n.s58
-rw-r--r--sysdeps/sparc/sparc64/addmul_1.s89
-rw-r--r--sysdeps/sparc/sparc64/gmp-mparam.h27
-rw-r--r--sysdeps/sparc/sparc64/lshift.s96
-rw-r--r--sysdeps/sparc/sparc64/mul_1.s86
-rw-r--r--sysdeps/sparc/sparc64/rshift.s93
-rw-r--r--sysdeps/sparc/sparc64/sub_n.s58
-rw-r--r--sysdeps/sparc/sparc64/submul_1.s89
8 files changed, 0 insertions, 596 deletions
diff --git a/sysdeps/sparc/sparc64/add_n.s b/sysdeps/sparc/sparc64/add_n.s
deleted file mode 100644
index 01d1f49564..0000000000
--- a/sysdeps/sparc/sparc64/add_n.s
+++ /dev/null
@@ -1,58 +0,0 @@
-! SPARC v9 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
-! sum in a third limb vector.
-
-! Copyright (C) 1995, 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr %o0
-! s1_ptr %o1
-! s2_ptr %o2
-! size %o3
-
-.section ".text"
- .align 4
- .global __mpn_add_n
- .type __mpn_add_n,#function
- .proc 04
-__mpn_add_n:
- sub %g0,%o3,%g3
- sllx %o3,3,%g1
- add %o1,%g1,%o1 ! make s1_ptr point at end
- add %o2,%g1,%o2 ! make s2_ptr point at end
- add %o0,%g1,%o0 ! make res_ptr point at end
- mov 0,%o4 ! clear carry variable
- sllx %g3,3,%o5 ! compute initial address index
-
-.Loop: ldx [%o2+%o5],%g1 ! load s2 limb
- add %g3,1,%g3 ! increment loop count
- ldx [%o1+%o5],%g2 ! load s1 limb
- addcc %g1,%o4,%g1 ! add s2 limb and carry variable
- movcc %xcc,0,%o4 ! if carry-out, o4 was 1; clear it
- addcc %g1,%g2,%g1 ! add s1 limb to sum
- stx %g1,[%o0+%o5] ! store result
- add %o5,8,%o5 ! increment address index
- brnz,pt %g3,.Loop
- movcs %xcc,1,%o4 ! if s1 add gave carry, record it
-
- retl
- mov %o4,%o0
-.LLfe1:
- .size __mpn_add_n,.LLfe1-__mpn_add_n
diff --git a/sysdeps/sparc/sparc64/addmul_1.s b/sysdeps/sparc/sparc64/addmul_1.s
deleted file mode 100644
index 8d86390808..0000000000
--- a/sysdeps/sparc/sparc64/addmul_1.s
+++ /dev/null
@@ -1,89 +0,0 @@
-! SPARC v9 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
-! add the product to a second limb vector.
-
-! Copyright (C) 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr o0
-! s1_ptr o1
-! size o2
-! s2_limb o3
-
-.section ".text"
- .align 4
- .global __mpn_addmul_1
- .type __mpn_addmul_1,#function
- .proc 016
-__mpn_addmul_1:
- !#PROLOGUE# 0
- save %sp,-160,%sp
- !#PROLOGUE# 1
- sub %g0,%i2,%o7
- sllx %o7,3,%g5
- sub %i1,%g5,%o3
- sub %i0,%g5,%o4
- mov 0,%o0 ! zero cy_limb
-
- srl %i3,0,%o1 ! extract low 32 bits of s2_limb
- srlx %i3,32,%i3 ! extract high 32 bits of s2_limb
- mov 1,%o2
- sllx %o2,32,%o2 ! o2 = 0x100000000
-
- ! hi !
- ! mid-1 !
- ! mid-2 !
- ! lo !
-.Loop:
- sllx %o7,3,%g1
- ldx [%o3+%g1],%g5
- srl %g5,0,%i0 ! zero hi bits
- srlx %g5,32,%g5
- mulx %o1,%i0,%i4 ! lo product
- mulx %i3,%i0,%i1 ! mid-1 product
- mulx %o1,%g5,%l2 ! mid-2 product
- mulx %i3,%g5,%i5 ! hi product
- srlx %i4,32,%i0 ! extract high 32 bits of lo product...
- add %i1,%i0,%i1 ! ...and add it to the mid-1 product
- addcc %i1,%l2,%i1 ! add mid products
- mov 0,%l0 ! we need the carry from that add...
- movcs %xcc,%o2,%l0 ! ...compute it and...
- add %i5,%l0,%i5 ! ...add to bit 32 of the hi product
- sllx %i1,32,%i0 ! align low bits of mid product
- srl %i4,0,%g5 ! zero high 32 bits of lo product
- add %i0,%g5,%i0 ! combine into low 64 bits of result
- srlx %i1,32,%i1 ! extract high bits of mid product...
- add %i5,%i1,%i1 ! ...and add them to the high result
- addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result
- mov 0,%g5
- movcs %xcc,1,%g5
- add %o7,1,%o7
- ldx [%o4+%g1],%l1
- addcc %l1,%i0,%i0
- movcs %xcc,1,%g5
- stx %i0,[%o4+%g1]
- brnz %o7,.Loop
- add %i1,%g5,%o0 ! compute new cy_limb
-
- mov %o0,%i0
- ret
- restore
-.LLfe1:
- .size __mpn_addmul_1,.LLfe1-__mpn_addmul_1
diff --git a/sysdeps/sparc/sparc64/gmp-mparam.h b/sysdeps/sparc/sparc64/gmp-mparam.h
deleted file mode 100644
index a3c66974de..0000000000
--- a/sysdeps/sparc/sparc64/gmp-mparam.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright (C) 1991, 1993, 1994 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 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 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 Library General Public
-License for more details.
-
-You should have received a copy of the GNU Library General Public License
-along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-MA 02111-1307, USA. */
-
-#define BITS_PER_MP_LIMB 64
-#define BYTES_PER_MP_LIMB 8
-#define BITS_PER_LONGINT 64
-#define BITS_PER_INT 32
-#define BITS_PER_SHORTINT 16
-#define BITS_PER_CHAR 8
diff --git a/sysdeps/sparc/sparc64/lshift.s b/sysdeps/sparc/sparc64/lshift.s
deleted file mode 100644
index ad1f667fa3..0000000000
--- a/sysdeps/sparc/sparc64/lshift.s
+++ /dev/null
@@ -1,96 +0,0 @@
-! SPARC v9 __mpn_lshift --
-
-! Copyright (C) 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr %o0
-! src_ptr %o1
-! size %o2
-! cnt %o3
-
-.section ".text"
- .align 4
- .global __mpn_lshift
- .type __mpn_lshift,#function
- .proc 04
-__mpn_lshift:
- sllx %o2,3,%g1
- add %o1,%g1,%o1 ! make %o1 point at end of src
- ldx [%o1-8],%g2 ! load first limb
- sub %g0,%o3,%o5 ! negate shift count
- add %o0,%g1,%o0 ! make %o0 point at end of res
- add %o2,-1,%o2
- and %o2,4-1,%g4 ! number of limbs in first loop
- srlx %g2,%o5,%g1 ! compute function result
- brz,pn %g4,.L0 ! if multiple of 4 limbs, skip first loop
- stx %g1,[%sp+80]
-
- sub %o2,%g4,%o2 ! adjust count for main loop
-
-.Loop0: ldx [%o1-16],%g3
- add %o0,-8,%o0
- add %o1,-8,%o1
- add %g4,-1,%g4
- sllx %g2,%o3,%o4
- srlx %g3,%o5,%g1
- mov %g3,%g2
- or %o4,%g1,%o4
- brnz,pt %g4,.Loop0
- stx %o4,[%o0+0]
-
-.L0: brz,pn %o2,.Lend
- nop
-
-.Loop: ldx [%o1-16],%g3
- add %o0,-32,%o0
- add %o2,-4,%o2
- sllx %g2,%o3,%o4
- srlx %g3,%o5,%g1
-
- ldx [%o1-24],%g2
- sllx %g3,%o3,%g4
- or %o4,%g1,%o4
- stx %o4,[%o0+24]
- srlx %g2,%o5,%g1
-
- ldx [%o1-32],%g3
- sllx %g2,%o3,%o4
- or %g4,%g1,%g4
- stx %g4,[%o0+16]
- srlx %g3,%o5,%g1
-
- ldx [%o1-40],%g2
- sllx %g3,%o3,%g4
- or %o4,%g1,%o4
- stx %o4,[%o0+8]
- srlx %g2,%o5,%g1
-
- add %o1,-32,%o1
- or %g4,%g1,%g4
- brnz,pt %o2,.Loop
- stx %g4,[%o0+0]
-
-.Lend: sllx %g2,%o3,%g2
- stx %g2,[%o0-8]
- retl
- ldx [%sp+80],%o0
-.LLfe1:
- .size __mpn_lshift,.LLfe1-__mpn_lshift
diff --git a/sysdeps/sparc/sparc64/mul_1.s b/sysdeps/sparc/sparc64/mul_1.s
deleted file mode 100644
index 91d6eb01b8..0000000000
--- a/sysdeps/sparc/sparc64/mul_1.s
+++ /dev/null
@@ -1,86 +0,0 @@
-! SPARC v9 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-! store the product in a second limb vector.
-
-! Copyright (C) 1995, 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr o0
-! s1_ptr o1
-! size o2
-! s2_limb o3
-
-.section ".text"
- .align 4
- .global __mpn_mul_1
- .type __mpn_mul_1,#function
- .proc 016
-__mpn_mul_1:
- !#PROLOGUE# 0
- save %sp,-160,%sp
- !#PROLOGUE# 1
- sub %g0,%i2,%o7
- sllx %o7,3,%g5
- sub %i1,%g5,%o3
- sub %i0,%g5,%o4
- mov 0,%o0 ! zero cy_limb
-
- srl %i3,0,%o1 ! extract low 32 bits of s2_limb
- srlx %i3,32,%i3 ! extract high 32 bits of s2_limb
- mov 1,%o2
- sllx %o2,32,%o2 ! o2 = 0x100000000
-
- ! hi !
- ! mid-1 !
- ! mid-2 !
- ! lo !
-.Loop:
- sllx %o7,3,%g1
- ldx [%o3+%g1],%g5
- srl %g5,0,%i0 ! zero hi bits
- srlx %g5,32,%g5
- mulx %o1,%i0,%i4 ! lo product
- mulx %i3,%i0,%i1 ! mid-1 product
- mulx %o1,%g5,%l2 ! mid-2 product
- mulx %i3,%g5,%i5 ! hi product
- srlx %i4,32,%i0 ! extract high 32 bits of lo product...
- add %i1,%i0,%i1 ! ...and add it to the mid-1 product
- addcc %i1,%l2,%i1 ! add mid products
- mov 0,%l0 ! we need the carry from that add...
- movcs %xcc,%o2,%l0 ! ...compute it and...
- add %i5,%l0,%i5 ! ...add to bit 32 of the hi product
- sllx %i1,32,%i0 ! align low bits of mid product
- srl %i4,0,%g5 ! zero high 32 bits of lo product
- add %i0,%g5,%i0 ! combine into low 64 bits of result
- srlx %i1,32,%i1 ! extract high bits of mid product...
- add %i5,%i1,%i1 ! ...and add them to the high result
- addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result
- mov 0,%g5
- movcs %xcc,1,%g5
- add %o7,1,%o7
- stx %i0,[%o4+%g1]
- brnz %o7,.Loop
- add %i1,%g5,%o0 ! compute new cy_limb
-
- mov %o0,%i0
- ret
- restore
-.LLfe1:
- .size __mpn_mul_1,.LLfe1-__mpn_mul_1
diff --git a/sysdeps/sparc/sparc64/rshift.s b/sysdeps/sparc/sparc64/rshift.s
deleted file mode 100644
index ff6a380160..0000000000
--- a/sysdeps/sparc/sparc64/rshift.s
+++ /dev/null
@@ -1,93 +0,0 @@
-! SPARC v9 __mpn_rshift --
-
-! Copyright (C) 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr %o0
-! src_ptr %o1
-! size %o2
-! cnt %o3
-
-.section ".text"
- .align 4
- .global __mpn_rshift
- .type __mpn_rshift,#function
- .proc 04
-__mpn_rshift:
- ldx [%o1],%g2 ! load first limb
- sub %g0,%o3,%o5 ! negate shift count
- add %o2,-1,%o2
- and %o2,4-1,%g4 ! number of limbs in first loop
- sllx %g2,%o5,%g1 ! compute function result
- brz,pn %g4,.L0 ! if multiple of 4 limbs, skip first loop
- stx %g1,[%sp+80]
-
- sub %o2,%g4,%o2 ! adjust count for main loop
-
-.Loop0: ldx [%o1+8],%g3
- add %o0,8,%o0
- add %o1,8,%o1
- add %g4,-1,%g4
- srlx %g2,%o3,%o4
- sllx %g3,%o5,%g1
- mov %g3,%g2
- or %o4,%g1,%o4
- brnz,pt %g4,.Loop0
- stx %o4,[%o0-8]
-
-.L0: brz,pn %o2,.Lend
- nop
-
-.Loop: ldx [%o1+8],%g3
- add %o0,32,%o0
- add %o2,-4,%o2
- srlx %g2,%o3,%o4
- sllx %g3,%o5,%g1
-
- ldx [%o1+16],%g2
- srlx %g3,%o3,%g4
- or %o4,%g1,%o4
- stx %o4,[%o0-32]
- sllx %g2,%o5,%g1
-
- ldx [%o1+24],%g3
- srlx %g2,%o3,%o4
- or %g4,%g1,%g4
- stx %g4,[%o0-24]
- sllx %g3,%o5,%g1
-
- ldx [%o1+32],%g2
- srlx %g3,%o3,%g4
- or %o4,%g1,%o4
- stx %o4,[%o0-16]
- sllx %g2,%o5,%g1
-
- add %o1,32,%o1
- or %g4,%g1,%g4
- brnz %o2,.Loop
- stx %g4,[%o0-8]
-
-.Lend: srlx %g2,%o3,%g2
- stx %g2,[%o0-0]
- retl
- ldx [%sp+80],%o0
-.LLfe1:
- .size __mpn_rshift,.LLfe1-__mpn_rshift
diff --git a/sysdeps/sparc/sparc64/sub_n.s b/sysdeps/sparc/sparc64/sub_n.s
deleted file mode 100644
index d4842b8cdd..0000000000
--- a/sysdeps/sparc/sparc64/sub_n.s
+++ /dev/null
@@ -1,58 +0,0 @@
-! SPARC v9 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
-! store difference in a third limb vector.
-
-! Copyright (C) 1995, 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr %o0
-! s1_ptr %o1
-! s2_ptr %o2
-! size %o3
-
-.section ".text"
- .align 4
- .global __mpn_sub_n
- .type __mpn_sub_n,#function
- .proc 04
-__mpn_sub_n:
- sub %g0,%o3,%g3
- sllx %o3,3,%g1
- add %o1,%g1,%o1 ! make s1_ptr point at end
- add %o2,%g1,%o2 ! make s2_ptr point at end
- add %o0,%g1,%o0 ! make res_ptr point at end
- mov 0,%o4 ! clear carry variable
- sllx %g3,3,%o5 ! compute initial address index
-
-.Loop: ldx [%o2+%o5],%g1 ! load s2 limb
- add %g3,1,%g3 ! increment loop count
- ldx [%o1+%o5],%g2 ! load s1 limb
- addcc %g1,%o4,%g1 ! add s2 limb and carry variable
- movcc %xcc,0,%o4 ! if carry-out, o4 was 1; clear it
- subcc %g1,%g2,%g1 ! subtract s1 limb from sum
- stx %g1,[%o0+%o5] ! store result
- add %o5,8,%o5 ! increment address index
- brnz,pt %g3,.Loop
- movcs %xcc,1,%o4 ! if s1 subtract gave carry, record it
-
- retl
- mov %o4,%o0
-.LLfe1:
- .size __mpn_sub_n,.LLfe1-__mpn_sub_n
diff --git a/sysdeps/sparc/sparc64/submul_1.s b/sysdeps/sparc/sparc64/submul_1.s
deleted file mode 100644
index e796243470..0000000000
--- a/sysdeps/sparc/sparc64/submul_1.s
+++ /dev/null
@@ -1,89 +0,0 @@
-! SPARC v9 __mpn_submul_1 -- Multiply a limb vector with a single limb and
-! subtract the product from a second limb vector.
-
-! Copyright (C) 1996 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 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 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 Library General Public
-! License for more details.
-
-! You should have received a copy of the GNU Library General Public License
-! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr o0
-! s1_ptr o1
-! size o2
-! s2_limb o3
-
-.section ".text"
- .align 4
- .global __mpn_submul_1
- .type __mpn_submul_1,#function
- .proc 016
-__mpn_submul_1:
- !#PROLOGUE# 0
- save %sp,-160,%sp
- !#PROLOGUE# 1
- sub %g0,%i2,%o7
- sllx %o7,3,%g5
- sub %i1,%g5,%o3
- sub %i0,%g5,%o4
- mov 0,%o0 ! zero cy_limb
-
- srl %i3,0,%o1 ! extract low 32 bits of s2_limb
- srlx %i3,32,%i3 ! extract high 32 bits of s2_limb
- mov 1,%o2
- sllx %o2,32,%o2 ! o2 = 0x100000000
-
- ! hi !
- ! mid-1 !
- ! mid-2 !
- ! lo !
-.Loop:
- sllx %o7,3,%g1
- ldx [%o3+%g1],%g5
- srl %g5,0,%i0 ! zero hi bits
- srlx %g5,32,%g5
- mulx %o1,%i0,%i4 ! lo product
- mulx %i3,%i0,%i1 ! mid-1 product
- mulx %o1,%g5,%l2 ! mid-2 product
- mulx %i3,%g5,%i5 ! hi product
- srlx %i4,32,%i0 ! extract high 32 bits of lo product...
- add %i1,%i0,%i1 ! ...and add it to the mid-1 product
- addcc %i1,%l2,%i1 ! add mid products
- mov 0,%l0 ! we need the carry from that add...
- movcs %xcc,%o2,%l0 ! ...compute it and...
- add %i5,%l0,%i5 ! ...add to bit 32 of the hi product
- sllx %i1,32,%i0 ! align low bits of mid product
- srl %i4,0,%g5 ! zero high 32 bits of lo product
- add %i0,%g5,%i0 ! combine into low 64 bits of result
- srlx %i1,32,%i1 ! extract high bits of mid product...
- add %i5,%i1,%i1 ! ...and add them to the high result
- addcc %i0,%o0,%i0 ! add cy_limb to low 64 bits of result
- mov 0,%g5
- movcs %xcc,1,%g5
- add %o7,1,%o7
- ldx [%o4+%g1],%l1
- subcc %l1,%i0,%i0
- movcs %xcc,1,%g5
- stx %i0,[%o4+%g1]
- brnz %o7,.Loop
- add %i1,%g5,%o0 ! compute new cy_limb
-
- mov %o0,%i0
- ret
- restore
-.LLfe1:
- .size __mpn_submul_1,.LLfe1-__mpn_submul_1