6 .globl _bn_mul_add_word
21 movl 20(%esp),%edi # r => edi
22 movl 24(%esp),%ebx # a => exb
23 movl 32(%esp),%ecx # w => ecx
24 movl 28(%esp),%ebp # num => ebp
32 movl %ecx,%eax # w => eax
34 addl (%edi),%eax # *r+=L(t)
35 adcl $0,%edx # H(t)+= carry
36 addl %esi,%eax # L(t)+=c
37 adcl $0,%edx # H(t)+=carry
38 movl %eax,(%edi) # *r+=L(t)
39 movl %edx,%esi # c=H(t)
42 movl %ecx,%eax # w => eax
44 addl 4(%edi),%eax # *r+=L(t)
45 adcl $0,%edx # H(t)+= carry
46 addl %esi,%eax # L(t)+=c
47 adcl $0,%edx # H(t)+=carry
48 movl %eax,4(%edi) # *r+=L(t)
49 movl %edx,%esi # c=H(t)
52 movl %ecx,%eax # w => eax
54 addl 8(%edi),%eax # *r+=L(t)
55 adcl $0,%edx # H(t)+=carry
56 addl %esi,%eax # L(t)+=c
57 adcl $0,%edx # H(t)+=carry
58 movl %eax,8(%edi) # *r+=L(t)
59 movl %edx,%esi # c=H(t)
62 movl %ecx,%eax # w => eax
63 mull 12(%ebx) # w * *a
64 addl 12(%edi),%eax # *r+=L(t)
65 adcl $0,%edx # H(t)+=carry
66 addl %esi,%eax # L(t)+=c
67 adcl $0,%edx # H(t)+=carry
68 movl %eax,12(%edi) # *r+=L(t)
69 movl %edx,%esi # c=H(t)
71 addl $16,%ebx # a+=4 (4 words)
72 addl $16,%edi # r+=4 (4 words)
79 movl 28(%esp),%ebp # num => ebp
84 movl %ecx,%eax # w => eax
86 addl (%edi),%eax # *r+=L(t)
87 adcl $0,%edx # H(t)+=carry
88 addl %esi,%eax # L(t)+=c
89 adcl $0,%edx # H(t)+=carry
90 movl %eax,(%edi) # *r+=L(t)
91 movl %edx,%esi # c=H(t)
96 movl %ecx,%eax # w => eax
98 addl 4(%edi),%eax # *r+=L(t)
99 adcl $0,%edx # H(t)+=carry
100 addl %esi,%eax # L(t)+=c
101 adcl $0,%edx # H(t)+=carry
102 movl %eax,4(%edi) # *r+=L(t)
103 movl %edx,%esi # c=H(t)
108 movl %ecx,%eax # w => eax
109 mull 8(%ebx) # w * *a
110 addl 8(%edi),%eax # *r+=L(t)
111 adcl $0,%edx # H(t)+=carry
112 addl %esi,%eax # L(t)+=c
113 adcl $0,%edx # H(t)+=carry
114 movl %eax,8(%edi) # *r+=L(t)
115 movl %edx,%esi # c=H(t)
119 movl %esi,%eax # return(c)
142 movl 20(%esp),%edi # r => edi
143 movl 24(%esp),%ebx # a => exb
144 movl 28(%esp),%ebp # num => bp
145 movl 32(%esp),%ecx # w => ecx
149 movl %ecx,%eax # w => eax
151 addl %esi,%eax # L(t)+=c
152 adcl $0,%edx # H(t)+=carry
153 movl %eax,(%edi) # *r=L(t)
154 movl %edx,%esi # c=H(t)
158 movl %ecx,%eax # w => eax
159 mull 4(%ebx) # w * *a
160 addl %esi,%eax # L(t)+=c
161 adcl $0,%edx # H(t)+=carry
162 movl %eax,4(%edi) # *r=L(t)
163 movl %edx,%esi # c=H(t)
167 movl %ecx,%eax # w => eax
168 mull 8(%ebx) # w * *a
169 addl %esi,%eax # L(t)+=c
170 adcl $0,%edx # H(t)+=carry
171 movl %eax,8(%edi) # *r=L(t)
172 movl %edx,%esi # c=H(t)
176 movl %ecx,%eax # w => eax
177 mull 12(%ebx) # w * *a
178 addl %esi,%eax # L(t)+=c
179 adcl $0,%edx # H(t)+=carry
180 movl %eax,12(%edi) # *r=L(t)
181 movl %edx,%esi # c=H(t)
185 addl $16,%ebx # a+=4 (4 words)
186 addl $16,%edi # r+=4 (4 words)
191 movl %esi,%eax # return(c)
204 movl 16(%esp),%esi # r
205 movl 20(%esp),%edi # a
206 movl 24(%esp),%ebx # n
211 movl (%edi),%eax # get a
213 movl %eax,(%esi) # put low into return addr
214 movl %edx,4(%esi) # put high into return addr
216 movl 4(%edi),%eax # get a
218 movl %eax,8(%esi) # put low into return addr
219 movl %edx,12(%esi) # put high into return addr
221 movl 8(%edi),%eax # get a
223 movl %eax,16(%esi) # put low into return addr
224 movl %edx,20(%esi) # put high into return addr
226 movl 12(%edi),%eax # get a
228 movl %eax,24(%esi) # put low into return addr
229 movl %edx,28(%esi) # put high into return addr
238 movl 24(%esp),%ebx # n
241 movl (%edi),%eax # get a
243 movl %eax,(%esi) # put low into return addr
244 movl %edx,4(%esi) # put high into return addr
247 movl 4(%edi),%eax # get a
249 movl %eax,8(%esi) # put low into return addr
250 movl %edx,12(%esi) # put high into return addr
253 movl 8(%edi),%eax # get a
255 movl %eax,16(%esi) # put low into return addr
256 movl %edx,20(%esi) # put high into return addr
267 movl 4(%esp),%edx # a
268 movl 8(%esp),%eax # b
272 .ident "GCC: (GNU) 2.6.3"