1; mc88110 __gmpn_addmul_1 -- Multiply a limb vector with a single limb and 2; store the product in a second limb vector. 3 4; Copyright 1996, 2000 Free Software Foundation, Inc. 5 6; This file is part of the GNU MP Library. 7; 8; The GNU MP Library is free software; you can redistribute it and/or modify 9; it under the terms of either: 10; 11; * the GNU Lesser General Public License as published by the Free 12; Software Foundation; either version 3 of the License, or (at your 13; option) any later version. 14; 15; or 16; 17; * the GNU General Public License as published by the Free Software 18; Foundation; either version 2 of the License, or (at your option) any 19; later version. 20; 21; or both in parallel, as here. 22; 23; The GNU MP Library is distributed in the hope that it will be useful, but 24; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 26; for more details. 27; 28; You should have received copies of the GNU General Public License and the 29; GNU Lesser General Public License along with the GNU MP Library. If not, 30; see https://www.gnu.org/licenses/. 31 32 33; INPUT PARAMETERS 34; res_ptr r2 35; s1_ptr r3 36; size r4 37; s2_limb r5 38 39 text 40 align 16 41 global ___gmpn_addmul_1 42___gmpn_addmul_1: 43 lda r3,r3[r4] 44 lda r8,r2[r4] ; RES_PTR in r8 since r2 is retval 45 subu r4,r0,r4 46 addu.co r2,r0,r0 ; r2 = cy = 0 47 48 ld r6,r3[r4] 49 addu r4,r4,1 50 subu r8,r8,4 51 bcnd.n eq0,r4,Lend 52 mulu.d r10,r6,r5 53 54Loop: ld r7,r8[r4] 55 ld r6,r3[r4] 56 addu.cio r9,r11,r2 57 addu.ci r2,r10,r0 58 addu.co r9,r9,r7 59 st r9,r8[r4] 60 addu r4,r4,1 61 mulu.d r10,r6,r5 62 bcnd ne0,r4,Loop 63 64Lend: ld r7,r8,0 65 addu.cio r9,r11,r2 66 addu.ci r2,r10,r0 67 addu.co r9,r9,r7 68 st r9,r8,0 69 jmp.n r1 70 addu.ci r2,r2,r0 71