X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fgmp%2Fmpn%2Fmips2%2Fsubmul_1.s;fp=rts%2Fgmp%2Fmpn%2Fmips2%2Fsubmul_1.s;h=0000000000000000000000000000000000000000;hb=fdf1cd0399158308769fcb2ab7e46e215a68d865;hp=495dea3ba2650d13672417efd04e181cd6122199;hpb=e552cfc427d2734b9a9629f2ab1d22f493e775f6;p=ghc-hetmet.git diff --git a/rts/gmp/mpn/mips2/submul_1.s b/rts/gmp/mpn/mips2/submul_1.s deleted file mode 100644 index 495dea3..0000000 --- a/rts/gmp/mpn/mips2/submul_1.s +++ /dev/null @@ -1,97 +0,0 @@ - # MIPS __gmpn_submul_1 -- Multiply a limb vector with a single limb and - # subtract the product from a second limb vector. - - # Copyright (C) 1992, 1994, 1996, 2000 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 $4 - # s1_ptr $5 - # size $6 - # s2_limb $7 - - .text - .align 4 - .globl __gmpn_submul_1 - .ent __gmpn_submul_1 -__gmpn_submul_1: - .set noreorder - .set nomacro - - # warm up phase 0 - lw $8,0($5) - - # warm up phase 1 - addiu $5,$5,4 - multu $8,$7 - - addiu $6,$6,-1 - beq $6,$0,$LC0 - move $2,$0 # zero cy2 - - addiu $6,$6,-1 - beq $6,$0,$LC1 - lw $8,0($5) # load new s1 limb as early as possible - -Loop: lw $10,0($4) - mflo $3 - mfhi $9 - addiu $5,$5,4 - addu $3,$3,$2 # add old carry limb to low product limb - multu $8,$7 - lw $8,0($5) # load new s1 limb as early as possible - addiu $6,$6,-1 # decrement loop counter - sltu $2,$3,$2 # carry from previous addition -> $2 - subu $3,$10,$3 - sgtu $10,$3,$10 - addu $2,$2,$10 - sw $3,0($4) - addiu $4,$4,4 - bne $6,$0,Loop - addu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 1 -$LC1: lw $10,0($4) - mflo $3 - mfhi $9 - addu $3,$3,$2 - sltu $2,$3,$2 - multu $8,$7 - subu $3,$10,$3 - sgtu $10,$3,$10 - addu $2,$2,$10 - sw $3,0($4) - addiu $4,$4,4 - addu $2,$9,$2 # add high product limb and carry from addition - - # cool down phase 0 -$LC0: lw $10,0($4) - mflo $3 - mfhi $9 - addu $3,$3,$2 - sltu $2,$3,$2 - subu $3,$10,$3 - sgtu $10,$3,$10 - addu $2,$2,$10 - sw $3,0($4) - j $31 - addu $2,$9,$2 # add high product limb and carry from addition - - .end __gmpn_submul_1