"Fossies" - the Fresh Open Source Software Archive

Member "gmp-6.2.1/mpn/s390_64/addmul_1.asm" (14 Nov 2020, 1813 Bytes) of package /linux/misc/gmp-6.2.1.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Generic Assembler source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 dnl  S/390-64 mpn_addmul_1
    2 
    3 dnl  Copyright 2011 Free Software Foundation, Inc.
    4 
    5 dnl  This file is part of the GNU MP Library.
    6 dnl
    7 dnl  The GNU MP Library is free software; you can redistribute it and/or modify
    8 dnl  it under the terms of either:
    9 dnl
   10 dnl    * the GNU Lesser General Public License as published by the Free
   11 dnl      Software Foundation; either version 3 of the License, or (at your
   12 dnl      option) any later version.
   13 dnl
   14 dnl  or
   15 dnl
   16 dnl    * the GNU General Public License as published by the Free Software
   17 dnl      Foundation; either version 2 of the License, or (at your option) any
   18 dnl      later version.
   19 dnl
   20 dnl  or both in parallel, as here.
   21 dnl
   22 dnl  The GNU MP Library is distributed in the hope that it will be useful, but
   23 dnl  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   24 dnl  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   25 dnl  for more details.
   26 dnl
   27 dnl  You should have received copies of the GNU General Public License and the
   28 dnl  GNU Lesser General Public License along with the GNU MP Library.  If not,
   29 dnl  see https://www.gnu.org/licenses/.
   30 
   31 include(`../config.m4')
   32 
   33 C            cycles/limb
   34 C z900      34
   35 C z990      23
   36 C z9         ?
   37 C z10       28
   38 C z196       ?
   39 
   40 C INPUT PARAMETERS
   41 define(`rp',    `%r2')
   42 define(`up',    `%r3')
   43 define(`n', `%r4')
   44 define(`v0',    `%r5')
   45 
   46 define(`z', `%r9')
   47 
   48 ASM_START()
   49 PROLOGUE(mpn_addmul_1)
   50     stmg    %r9, %r12, 72(%r15)
   51     lghi    %r12, 0         C zero index register
   52     aghi    %r12, 0         C clear carry flag
   53     lghi    %r11, 0         C clear carry limb
   54     lghi    z, 0            C keep register zero
   55 
   56 L(top): lg  %r1, 0(%r12,up)
   57     lg  %r10, 0(%r12,rp)
   58     mlgr    %r0, v0
   59     alcgr   %r1, %r10
   60     alcgr   %r0, z
   61     algr    %r1, %r11
   62     lgr %r11, %r0
   63     stg %r1, 0(%r12,rp)
   64     la  %r12, 8(%r12)
   65     brctg   n, L(top)
   66 
   67     lghi    %r2, 0
   68     alcgr   %r2, %r11
   69 
   70     lmg %r9, %r12, 72(%r15)
   71     br  %r14
   72 EPILOGUE()