X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2Fgmp%2Fmpn%2Farm%2Fmul_1.S;fp=rts%2Fgmp%2Fmpn%2Farm%2Fmul_1.S;h=0000000000000000000000000000000000000000;hp=bae526a0f087963904e0bcba224fa4ab00e42316;hb=fdf1cd0399158308769fcb2ab7e46e215a68d865;hpb=e552cfc427d2734b9a9629f2ab1d22f493e775f6 diff --git a/rts/gmp/mpn/arm/mul_1.S b/rts/gmp/mpn/arm/mul_1.S deleted file mode 100644 index bae526a..0000000 --- a/rts/gmp/mpn/arm/mul_1.S +++ /dev/null @@ -1,81 +0,0 @@ -@ ARM mpn_addmul_1 -- Multiply a limb vector with a limb and store the result -@ in a second limb vector. -@ Contributed by Robert Harley. - -@ Copyright (C) 1998, 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. - -#define p r0 -#define a r1 -#define n r2 -#define w r3 - -#define sl r10 -#define fp r11 -#define ip r12 -#define sp r13 -#define lr r14 -#define pc r15 - -.text - .align 0 - .global __gmpn_mul_1 - .type __gmpn_mul_1,%function -__gmpn_mul_1: - stmfd sp!, { r8, r9, lr } - ands ip, n, #1 - beq skip1 - ldr lr, [a], #4 - umull r9, ip, w, lr - str r9, [p], #4 -skip1: - tst n, #2 - beq skip2 - mov r8, ip - ldmia a!, { ip, lr } - mov r9, #0 - umlal r8, r9, w, ip - mov ip, #0 - umlal r9, ip, w, lr - stmia p!, { r8, r9 } -skip2: - bics n, n, #3 - beq return - stmfd sp!, { r6, r7 } -mul_1_loop: - mov r6, ip - ldmia a!, { r8, r9, ip, lr } - ldr r7, [p] /* Bring stuff into cache. */ - mov r7, #0 - umlal r6, r7, w, r8 - mov r8, #0 - umlal r7, r8, w, r9 - mov r9, #0 - umlal r8, r9, w, ip - mov ip, #0 - umlal r9, ip, w, lr - subs n, n, #4 - stmia p!, { r6, r7, r8, r9 } - bne mul_1_loop - ldmfd sp!, { r6, r7 } -return: - mov r0, ip - ldmfd sp!, { r8, r9, pc } -end: - .size __gmpn_mul_1, end - __gmpn_mul_1