summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/hppa
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/hppa')
-rw-r--r--libc/sysdeps/linux/hppa/add_n.S58
-rw-r--r--libc/sysdeps/linux/hppa/lshift.S66
-rw-r--r--libc/sysdeps/linux/hppa/rshift.S63
-rw-r--r--libc/sysdeps/linux/hppa/sub_n.S59
-rw-r--r--libc/sysdeps/linux/hppa/udiv_qrnnd.S286
5 files changed, 0 insertions, 532 deletions
diff --git a/libc/sysdeps/linux/hppa/add_n.S b/libc/sysdeps/linux/hppa/add_n.S
deleted file mode 100644
index a396b3471..000000000
--- a/libc/sysdeps/linux/hppa/add_n.S
+++ /dev/null
@@ -1,58 +0,0 @@
-;! HP-PA __mpn_add_n -- Add two limb vectors of the same length > 0 and store
-;! sum in a third limb vector.
-
-;! Copyright (C) 1992, 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 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., 59 Temple Place - Suite 330, Boston,
-;! MA 02111-1307, USA.
-
-
-;! INPUT PARAMETERS
-;! res_ptr gr26
-;! s1_ptr gr25
-;! s2_ptr gr24
-;! size gr23
-
-;! One might want to unroll this as for other processors, but it turns
-;! out that the data cache contention after a store makes such
-;! unrolling useless. We can't come under 5 cycles/limb anyway.
-
- .text
- .export __mpn_add_n
-__mpn_add_n:
- .proc
- .callinfo frame=0,no_calls
- .entry
-
- ldws,ma 4(%r25),%r21
- ldws,ma 4(%r24),%r20
-
- addib,= -1,%r23,L$end ;! check for (SIZE == 1)
- add %r21,%r20,%r28 ;! add first limbs ignoring cy
-
-L$loop: ldws,ma 4(%r25),%r21
- ldws,ma 4(%r24),%r20
- stws,ma %r28,4(%r26)
- addib,<> -1,%r23,L$loop
- addc %r21,%r20,%r28
-
-L$end: stws %r28,0(%r26)
- bv 0(%r2)
- addc %r0,%r0,%r28
-
- .exit
- .procend
diff --git a/libc/sysdeps/linux/hppa/lshift.S b/libc/sysdeps/linux/hppa/lshift.S
deleted file mode 100644
index 151b283e5..000000000
--- a/libc/sysdeps/linux/hppa/lshift.S
+++ /dev/null
@@ -1,66 +0,0 @@
-;! HP-PA __mpn_lshift --
-
-;! Copyright (C) 1992, 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 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., 59 Temple Place - Suite 330, Boston,
-;! MA 02111-1307, USA.
-
-
-;! INPUT PARAMETERS
-;! res_ptr gr26
-;! s_ptr gr25
-;! size gr24
-;! cnt gr23
-
- .text
- .export __mpn_lshift
-__mpn_lshift:
- .proc
- .callinfo frame=64,no_calls
- .entry
-
- sh2add %r24,%r25,%r25
- sh2add %r24,%r26,%r26
- ldws,mb -4(%r25),%r22
- subi 32,%r23,%r1
- mtsar %r1
- addib,= -1,%r24,L$0004
- vshd %r0,%r22,%r28 ;! compute carry out limb
- ldws,mb -4(%r25),%r29
- addib,= -1,%r24,L$0002
- vshd %r22,%r29,%r20
-
-L$loop: ldws,mb -4(%r25),%r22
- stws,mb %r20,-4(%r26)
- addib,= -1,%r24,L$0003
- vshd %r29,%r22,%r20
- ldws,mb -4(%r25),%r29
- stws,mb %r20,-4(%r26)
- addib,<> -1,%r24,L$loop
- vshd %r22,%r29,%r20
-
-L$0002: stws,mb %r20,-4(%r26)
- vshd %r29,%r0,%r20
- bv 0(%r2)
- stw %r20,-4(%r26)
-L$0003: stws,mb %r20,-4(%r26)
-L$0004: vshd %r22,%r0,%r20
- bv 0(%r2)
- stw %r20,-4(%r26)
-
- .exit
- .procend
diff --git a/libc/sysdeps/linux/hppa/rshift.S b/libc/sysdeps/linux/hppa/rshift.S
deleted file mode 100644
index dff189dc4..000000000
--- a/libc/sysdeps/linux/hppa/rshift.S
+++ /dev/null
@@ -1,63 +0,0 @@
-;! HP-PA __mpn_rshift --
-
-;! Copyright (C) 1992, 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 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., 59 Temple Place - Suite 330, Boston,
-;! MA 02111-1307, USA.
-
-
-;! INPUT PARAMETERS
-;! res_ptr gr26
-;! s_ptr gr25
-;! size gr24
-;! cnt gr23
-
- .text
- .export __mpn_rshift
-__mpn_rshift:
- .proc
- .callinfo frame=64,no_calls
- .entry
-
- ldws,ma 4(%r25),%r22
- mtsar %r23
- addib,= -1,%r24,L$0004
- vshd %r22,%r0,%r28 ;! compute carry out limb
- ldws,ma 4(%r25),%r29
- addib,= -1,%r24,L$0002
- vshd %r29,%r22,%r20
-
-L$loop: ldws,ma 4(%r25),%r22
- stws,ma %r20,4(%r26)
- addib,= -1,%r24,L$0003
- vshd %r22,%r29,%r20
- ldws,ma 4(%r25),%r29
- stws,ma %r20,4(%r26)
- addib,<> -1,%r24,L$loop
- vshd %r29,%r22,%r20
-
-L$0002: stws,ma %r20,4(%r26)
- vshd %r0,%r29,%r20
- bv 0(%r2)
- stw %r20,0(%r26)
-L$0003: stws,ma %r20,4(%r26)
-L$0004: vshd %r0,%r22,%r20
- bv 0(%r2)
- stw %r20,0(%r26)
-
- .exit
- .procend
diff --git a/libc/sysdeps/linux/hppa/sub_n.S b/libc/sysdeps/linux/hppa/sub_n.S
deleted file mode 100644
index 7764961a2..000000000
--- a/libc/sysdeps/linux/hppa/sub_n.S
+++ /dev/null
@@ -1,59 +0,0 @@
-;! HP-PA __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
-;! store difference in a third limb vector.
-
-;! Copyright (C) 1992, 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 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., 59 Temple Place - Suite 330, Boston,
-;! MA 02111-1307, USA.
-
-
-;! INPUT PARAMETERS
-;! res_ptr gr26
-;! s1_ptr gr25
-;! s2_ptr gr24
-;! size gr23
-
-;! One might want to unroll this as for other processors, but it turns
-;! out that the data cache contention after a store makes such
-;! unrolling useless. We can't come under 5 cycles/limb anyway.
-
- .text
- .export __mpn_sub_n
-__mpn_sub_n:
- .proc
- .callinfo frame=0,no_calls
- .entry
-
- ldws,ma 4(%r25),%r21
- ldws,ma 4(%r24),%r20
-
- addib,= -1,%r23,L$end ;! check for (SIZE == 1)
- sub %r21,%r20,%r28 ;! subtract first limbs ignoring cy
-
-L$loop: ldws,ma 4(%r25),%r21
- ldws,ma 4(%r24),%r20
- stws,ma %r28,4(%r26)
- addib,<> -1,%r23,L$loop
- subb %r21,%r20,%r28
-
-L$end: stws %r28,0(%r26)
- addc %r0,%r0,%r28
- bv 0(%r2)
- subi 1,%r28,%r28
-
- .exit
- .procend
diff --git a/libc/sysdeps/linux/hppa/udiv_qrnnd.S b/libc/sysdeps/linux/hppa/udiv_qrnnd.S
deleted file mode 100644
index 8e9c07a20..000000000
--- a/libc/sysdeps/linux/hppa/udiv_qrnnd.S
+++ /dev/null
@@ -1,286 +0,0 @@
-;! HP-PA __udiv_qrnnd division support, used from longlong.h.
-;! This version runs fast on pre-PA7000 CPUs.
-
-;! Copyright (C) 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 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., 59 Temple Place - Suite 330, Boston,
-;! MA 02111-1307, USA.
-
-
-;! INPUT PARAMETERS
-;! rem_ptr gr26
-;! n1 gr25
-;! n0 gr24
-;! d gr23
-
-;! The code size is a bit excessive. We could merge the last two ds;addc
-;! sequences by simply moving the "bb,< Odd" instruction down. The only
-;! trouble is the FFFFFFFF code that would need some hacking.
-
- .text
- .export __udiv_qrnnd
-__udiv_qrnnd:
- .proc
- .callinfo frame=0,no_calls
- .entry
-
- comb,< %r23,%r0,L$largedivisor
- sub %r0,%r23,%r1 ;! clear cy as side-effect
- ds %r0,%r1,%r0
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r24
- ds %r25,%r23,%r25
- addc %r24,%r24,%r28
- ds %r25,%r23,%r25
- comclr,>= %r25,%r0,%r0
- addl %r25,%r23,%r25
- stws %r25,0(%r26)
- bv 0(%r2)
- addc %r28,%r28,%r28
-
-L$largedivisor:
- extru %r24,31,1,%r20 ;! r20 = n0 & 1
- bb,< %r23,31,L$odd
- extru %r23,30,31,%r22 ;! r22 = d >> 1
- shd %r25,%r24,1,%r24 ;! r24 = new n0
- extru %r25,30,31,%r25 ;! r25 = new n1
- sub %r0,%r22,%r21
- ds %r0,%r21,%r0
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- comclr,>= %r25,%r0,%r0
- addl %r25,%r22,%r25
- sh1addl %r25,%r20,%r25
- stws %r25,0(%r26)
- bv 0(%r2)
- addc %r24,%r24,%r28
-
-L$odd: addib,sv,n 1,%r22,L$FF.. ;! r22 = (d / 2 + 1)
- shd %r25,%r24,1,%r24 ;! r24 = new n0
- extru %r25,30,31,%r25 ;! r25 = new n1
- sub %r0,%r22,%r21
- ds %r0,%r21,%r0
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r24
- ds %r25,%r22,%r25
- addc %r24,%r24,%r28
- comclr,>= %r25,%r0,%r0
- addl %r25,%r22,%r25
- sh1addl %r25,%r20,%r25
-;! We have computed (n1,,n0) / (d + 1), q' = r28, r' = r25
- add,nuv %r28,%r25,%r25
- addl %r25,%r1,%r25
- addc %r0,%r28,%r28
- sub,<< %r25,%r23,%r0
- addl %r25,%r1,%r25
- stws %r25,0(%r26)
- bv 0(%r2)
- addc %r0,%r28,%r28
-
-;! This is just a special case of the code above.
-;! We come here when d == 0xFFFFFFFF
-L$FF..: add,uv %r25,%r24,%r24
- sub,<< %r24,%r23,%r0
- ldo 1(%r24),%r24
- stws %r24,0(%r26)
- bv 0(%r2)
- addc %r0,%r25,%r28
-
- .exit
- .procend