From 11da511c784eca003deb90c23570f0873954e0de Mon Sep 17 00:00:00 2001 From: Duncan Wilkie Date: Sat, 18 Nov 2023 06:11:09 -0600 Subject: Initial commit. --- gmp-6.3.0/mpn/alpha/copyd.asm | 88 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 gmp-6.3.0/mpn/alpha/copyd.asm (limited to 'gmp-6.3.0/mpn/alpha/copyd.asm') diff --git a/gmp-6.3.0/mpn/alpha/copyd.asm b/gmp-6.3.0/mpn/alpha/copyd.asm new file mode 100644 index 0000000..b41b536 --- /dev/null +++ b/gmp-6.3.0/mpn/alpha/copyd.asm @@ -0,0 +1,88 @@ +dnl Alpha mpn_copyd -- copy, decrementing. + +dnl Copyright 2002, 2003 Free Software Foundation, Inc. + +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 either: +dnl +dnl * the GNU Lesser General Public License as published by the Free +dnl Software Foundation; either version 3 of the License, or (at your +dnl option) any later version. +dnl +dnl or +dnl +dnl * the GNU General Public License as published by the Free Software +dnl Foundation; either version 2 of the License, or (at your option) any +dnl later version. +dnl +dnl or both in parallel, as here. +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 General Public License +dnl for more details. +dnl +dnl You should have received copies of the GNU General Public License and the +dnl GNU Lesser General Public License along with the GNU MP Library. If not, +dnl see https://www.gnu.org/licenses/. + +include(`../config.m4') + +C cycles/limb +C EV4: 4 +C EV5: 1.75 +C EV6: 1 + +C INPUT PARAMETERS +C rp r16 +C up r17 +C n r18 + + +ASM_START() +PROLOGUE(mpn_copyd) + s8addq r18,r16,r16 C E0 + s8addq r18,r17,r17 C E1 + lda r18,-8(r18) C E0 + blt r18,$Lend C E1 +$Loop: ldq r0,-8(r17) C E0 + ldq r1,-16(r17) C E1 + ldq r2,-24(r17) C E0 + ldq r3,-32(r17) C E1 + ldq r4,-40(r17) C E0 + ldq r5,-48(r17) C E1 + ldq r6,-56(r17) C E0 + ldq r7,-64(r17) C E1 + stq r0,-8(r16) C E0 + lda r17,-64(r17) C E1 + stq r1,-16(r16) C E0 + bis r31, r31, r31 C E1 + stq r2,-24(r16) C E0 + lda r18,-8(r18) C E1 + stq r3,-32(r16) C E0 + bis r31, r31, r31 C E1 + stq r4,-40(r16) C E0 + bis r31, r31, r31 C E1 + stq r5,-48(r16) C E0 + bis r31, r31, r31 C E1 + stq r6,-56(r16) C E0 + bis r31, r31, r31 C E1 + stq r7,-64(r16) C E0 + lda r16,-64(r16) C E1 + bge r18,$Loop C E1 +$Lend: lda r18,7(r18) C E0 + blt r18,$Lret C E1 + ldq r0,-8(r17) C E0 + beq r18,$Lend0 C E1 +$Loop0: stq r0,-8(r16) C E0 + lda r16,-8(r16) C E1 + ldq r0,-16(r17) C E0 + lda r18,-1(r18) C E1 + lda r17,-8(r17) C E0 + bgt r18,$Loop0 C E1 +$Lend0: stq r0,-8(r16) C E0 +$Lret: ret r31,(r26),1 C E1 +EPILOGUE(mpn_copyd) +ASM_END() -- cgit v1.2.3