[BACK]Return to sqr_diagonal.asm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpn / mips64

Annotation of OpenXM_contrib/gmp/mpn/mips64/sqr_diagonal.asm, Revision 1.1.1.1

1.1       ohara       1: dnl  MIPS64 mpn_sqr_diagonal.
                      2:
                      3: dnl  Copyright 2001, 2002 Free Software Foundation, Inc.
                      4:
                      5: dnl  This file is part of the GNU MP Library.
                      6:
                      7: dnl  The GNU MP Library is free software; you can redistribute it and/or modify
                      8: dnl  it under the terms of the GNU Lesser General Public License as published
                      9: dnl  by the Free Software Foundation; either version 2.1 of the License, or (at
                     10: dnl  your option) any later version.
                     11:
                     12: dnl  The GNU MP Library is distributed in the hope that it will be useful, but
                     13: dnl  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     14: dnl  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
                     15: dnl  License for more details.
                     16:
                     17: dnl  You should have received a copy of the GNU Lesser General Public License
                     18: dnl  along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
                     19: dnl  the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
                     20: dnl  MA 02111-1307, USA.
                     21:
                     22:
                     23: dnl  INPUT PARAMETERS
                     24: dnl  rp                $4
                     25: dnl  up                $5
                     26: dnl  n         $6
                     27:
                     28: include(`../config.m4')
                     29:
                     30: ASM_START()
                     31: PROLOGUE(mpn_sqr_diagonal)
                     32:        ld      r8,0(r5)
                     33:        daddiu  r6,r6,-2
                     34:        dmultu  r8,r8
                     35:        bltz    r6,$Lend1
                     36:        nop
                     37:        ld      r8,8(r5)
                     38:        beq     r6,r0,$Lend2
                     39:        nop
                     40:
                     41: $Loop: mflo    r10
                     42:        mfhi    r9
                     43:        daddiu  r6,r6,-1
                     44:        sd      r10,0(r4)
                     45:        sd      r9,8(r4)
                     46:        dmultu  r8,r8
                     47:        ld      r8,16(r5)
                     48:        daddiu  r5,r5,8
                     49:        bne     r6,r0,$Loop
                     50:        daddiu  r4,r4,16
                     51:
                     52: $Lend2: mflo   r10
                     53:        mfhi    r9
                     54:        sd      r10,0(r4)
                     55:        sd      r9,8(r4)
                     56:        dmultu  r8,r8
                     57:        mflo    r10
                     58:        mfhi    r9
                     59:        sd      r10,16(r4)
                     60:        j       r31
                     61:        sd      r9,24(r4)
                     62:
                     63: $Lend1: mflo   r10
                     64:        mfhi    r9
                     65:        sd      r10,0(r4)
                     66:        j       r31
                     67:        sd      r9,8(r4)
                     68: EPILOGUE(mpn_sqr_diagonal)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>