[BACK]Return to mul_1.s CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpn / power

Diff for /OpenXM_contrib/gmp/mpn/power/Attic/mul_1.s between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2000/01/10 15:35:24 version 1.1.1.2, 2000/09/09 14:12:38
Line 1 
Line 1 
 # IBM POWER __mpn_mul_1 -- Multiply a limb vector with a limb and store  # IBM POWER __gmpn_mul_1 -- Multiply a limb vector with a limb and store
 # the result in a second limb vector.  # the result in a second limb vector.
   
 # Copyright (C) 1992, 1994 Free Software Foundation, Inc.  # Copyright (C) 1992, 1994, 1999, 2000 Free Software Foundation, Inc.
   
 # This file is part of the GNU MP Library.  # This file is part of the GNU MP Library.
   
 # The GNU MP Library is free software; you can redistribute it and/or modify  # 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  # it under the terms of the GNU Lesser General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or (at your  # the Free Software Foundation; either version 2.1 of the License, or (at your
 # option) any later version.  # option) any later version.
   
 # The GNU MP Library is distributed in the hope that it will be useful, but  # 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  # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public  # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
 # License for more details.  # License for more details.
   
 # You should have received a copy of the GNU Library General Public License  # 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  # 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,  # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 # MA 02111-1307, USA.  # MA 02111-1307, USA.
Line 27 
Line 27 
 # size          r5  # size          r5
 # s2_limb       r6  # s2_limb       r6
   
 # The RS/6000 has no unsigned 32x32->64 bit multiplication instruction.  To  # The POWER architecture has no unsigned 32x32->64 bit multiplication
 # obtain that operation, we have to use the 32x32->64 signed multiplication  # instruction.  To obtain that operation, we have to use the 32x32->64 signed
 # instruction, and add the appropriate compensation to the high limb of the  # multiplication instruction, and add the appropriate compensation to the high
 # result.  We add the multiplicand if the multiplier has its most significant  # limb of the result.  We add the multiplicand if the multiplier has its most
 # bit set, and we add the multiplier if the multiplicand has its most  # significant bit set, and we add the multiplier if the multiplicand has its
 # significant bit set.  We need to preserve the carry flag between each  # most significant bit set.  We need to preserve the carry flag between each
 # iteration, so we have to compute the compensation carefully (the natural,  # iteration, so we have to compute the compensation carefully (the natural,
 # srai+and doesn't work).  Since the POWER architecture has a branch unit  # srai+and doesn't work).  Since the POWER architecture has a branch unit we
 # we can branch in zero cycles, so that's how we perform the additions.  # can branch in zero cycles, so that's how we perform the additions.
   
         .toc          .toc
         .csect .__mpn_mul_1[PR]          .globl  __gmpn_mul_1
         .align 2          .globl  .__gmpn_mul_1
         .globl __mpn_mul_1          .csect  __gmpn_mul_1[DS]
         .globl .__mpn_mul_1  __gmpn_mul_1:
         .csect __mpn_mul_1[DS]          .long   .__gmpn_mul_1, TOC[tc0], 0
 __mpn_mul_1:          .csect  .text[PR]
         .long .__mpn_mul_1[PR], TOC[tc0], 0          .align  2
         .csect .__mpn_mul_1[PR]  .__gmpn_mul_1:
 .__mpn_mul_1:  
   
         cal     3,-4(3)          cal     3,-4(3)
         l       0,0(4)          l       0,0(4)

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2

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