1
; 29000 __gmpn_addmul_1 -- Multiply a limb vector with a single limb and
2
; add the product to a second limb vector.
4
; Copyright 1992, 1994, 2000 Free Software Foundation, Inc.
6
; This file is part of the GNU MP Library.
8
; The GNU MP Library is free software; you can redistribute it and/or modify
9
; it under the terms of the GNU Lesser General Public License as published by
10
; the Free Software Foundation; either version 2.1 of the License, or (at your
11
; option) any later version.
13
; The GNU MP Library is distributed in the hope that it will be useful, but
14
; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16
; License for more details.
18
; You should have received a copy of the GNU Lesser General Public License
19
; along with the GNU MP Library; see the file COPYING.LIB. If not, write to
20
; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
34
.global ___gmpn_addmul_1
39
const gr120,0 ; init cylimb reg
41
srl gr117,lr4,3 ; divide by 8
42
sub gr117,gr117,1 ; count for jmpfdec
48
multiplu gr104,gr96,lr5
50
multiplu gr105,gr97,lr5
52
multiplu gr106,gr98,lr5
54
multiplu gr107,gr99,lr5
56
multiplu gr108,gr100,lr5
57
multmu gr100,gr100,lr5
58
multiplu gr109,gr101,lr5
59
multmu gr101,gr101,lr5
60
multiplu gr110,gr102,lr5
61
multmu gr102,gr102,lr5
62
multiplu gr111,gr103,lr5
63
multmu gr103,gr103,lr5
70
addc gr109,gr109,gr100
71
addc gr110,gr110,gr101
72
addc gr111,gr111,gr102
82
addc gr108,gr100,gr108
83
addc gr109,gr101,gr109
84
addc gr110,gr102,gr110
85
addc gr111,gr103,gr111
93
Ltail: and lr4,lr4,(8-1)
94
sub gr118,lr4,1 ; count for CR
97
sub lr2,lr2,4 ; offset res_ptr by one limb
99
Loop2: load 0,0,gr116,lr3
101
multiplu gr117,gr116,lr5
102
multmu gr118,gr116,lr5
105
add gr117,gr117,gr120
107
add gr117,gr117,gr119
113
or gr96,gr120,0 ; copy