summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/asm/ia64.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/bn/asm/ia64.S')
-rw-r--r--src/lib/libcrypto/bn/asm/ia64.S35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/lib/libcrypto/bn/asm/ia64.S b/src/lib/libcrypto/bn/asm/ia64.S
index 951abc53ea..7b82b820e6 100644
--- a/src/lib/libcrypto/bn/asm/ia64.S
+++ b/src/lib/libcrypto/bn/asm/ia64.S
@@ -171,21 +171,21 @@
171.skip 32 // makes the loop body aligned at 64-byte boundary 171.skip 32 // makes the loop body aligned at 64-byte boundary
172bn_add_words: 172bn_add_words:
173 .prologue 173 .prologue
174 .fframe 0
174 .save ar.pfs,r2 175 .save ar.pfs,r2
175{ .mii; alloc r2=ar.pfs,4,12,0,16 176{ .mii; alloc r2=ar.pfs,4,12,0,16
176 cmp4.le p6,p0=r35,r0 };; 177 cmp4.le p6,p0=r35,r0 };;
177{ .mfb; mov r8=r0 // return value 178{ .mfb; mov r8=r0 // return value
178(p6) br.ret.spnt.many b0 };; 179(p6) br.ret.spnt.many b0 };;
179 180
180{ .mib; sub r10=r35,r0,1
181 .save ar.lc,r3 181 .save ar.lc,r3
182{ .mib; sub r10=r35,r0,1
182 mov r3=ar.lc 183 mov r3=ar.lc
183 brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16 184 brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16
184 } 185 }
186 .body
185{ .mib; ADDP r14=0,r32 // rp 187{ .mib; ADDP r14=0,r32 // rp
186 .save pr,r9
187 mov r9=pr };; 188 mov r9=pr };;
188 .body
189{ .mii; ADDP r15=0,r33 // ap 189{ .mii; ADDP r15=0,r33 // ap
190 mov ar.lc=r10 190 mov ar.lc=r10
191 mov ar.ec=6 } 191 mov ar.ec=6 }
@@ -224,21 +224,21 @@ bn_add_words:
224.skip 32 // makes the loop body aligned at 64-byte boundary 224.skip 32 // makes the loop body aligned at 64-byte boundary
225bn_sub_words: 225bn_sub_words:
226 .prologue 226 .prologue
227 .fframe 0
227 .save ar.pfs,r2 228 .save ar.pfs,r2
228{ .mii; alloc r2=ar.pfs,4,12,0,16 229{ .mii; alloc r2=ar.pfs,4,12,0,16
229 cmp4.le p6,p0=r35,r0 };; 230 cmp4.le p6,p0=r35,r0 };;
230{ .mfb; mov r8=r0 // return value 231{ .mfb; mov r8=r0 // return value
231(p6) br.ret.spnt.many b0 };; 232(p6) br.ret.spnt.many b0 };;
232 233
233{ .mib; sub r10=r35,r0,1
234 .save ar.lc,r3 234 .save ar.lc,r3
235{ .mib; sub r10=r35,r0,1
235 mov r3=ar.lc 236 mov r3=ar.lc
236 brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16 237 brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16
237 } 238 }
239 .body
238{ .mib; ADDP r14=0,r32 // rp 240{ .mib; ADDP r14=0,r32 // rp
239 .save pr,r9
240 mov r9=pr };; 241 mov r9=pr };;
241 .body
242{ .mii; ADDP r15=0,r33 // ap 242{ .mii; ADDP r15=0,r33 // ap
243 mov ar.lc=r10 243 mov ar.lc=r10
244 mov ar.ec=6 } 244 mov ar.ec=6 }
@@ -283,6 +283,7 @@ bn_sub_words:
283.skip 32 // makes the loop body aligned at 64-byte boundary 283.skip 32 // makes the loop body aligned at 64-byte boundary
284bn_mul_words: 284bn_mul_words:
285 .prologue 285 .prologue
286 .fframe 0
286 .save ar.pfs,r2 287 .save ar.pfs,r2
287#ifdef XMA_TEMPTATION 288#ifdef XMA_TEMPTATION
288{ .mfi; alloc r2=ar.pfs,4,0,0,0 };; 289{ .mfi; alloc r2=ar.pfs,4,0,0,0 };;
@@ -293,10 +294,9 @@ bn_mul_words:
293 cmp4.le p6,p0=r34,r0 294 cmp4.le p6,p0=r34,r0
294(p6) br.ret.spnt.many b0 };; 295(p6) br.ret.spnt.many b0 };;
295 296
296{ .mii; sub r10=r34,r0,1
297 .save ar.lc,r3 297 .save ar.lc,r3
298{ .mii; sub r10=r34,r0,1
298 mov r3=ar.lc 299 mov r3=ar.lc
299 .save pr,r9
300 mov r9=pr };; 300 mov r9=pr };;
301 301
302 .body 302 .body
@@ -397,21 +397,22 @@ bn_mul_words:
397.skip 48 // makes the loop body aligned at 64-byte boundary 397.skip 48 // makes the loop body aligned at 64-byte boundary
398bn_mul_add_words: 398bn_mul_add_words:
399 .prologue 399 .prologue
400 .fframe 0
400 .save ar.pfs,r2 401 .save ar.pfs,r2
402 .save ar.lc,r3
403 .save pr,r9
401{ .mmi; alloc r2=ar.pfs,4,4,0,8 404{ .mmi; alloc r2=ar.pfs,4,4,0,8
402 cmp4.le p6,p0=r34,r0 405 cmp4.le p6,p0=r34,r0
403 .save ar.lc,r3
404 mov r3=ar.lc };; 406 mov r3=ar.lc };;
405{ .mib; mov r8=r0 // return value 407{ .mib; mov r8=r0 // return value
406 sub r10=r34,r0,1 408 sub r10=r34,r0,1
407(p6) br.ret.spnt.many b0 };; 409(p6) br.ret.spnt.many b0 };;
408 410
411 .body
409{ .mib; setf.sig f8=r35 // w 412{ .mib; setf.sig f8=r35 // w
410 .save pr,r9
411 mov r9=pr 413 mov r9=pr
412 brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16 414 brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16
413 } 415 }
414 .body
415{ .mmi; ADDP r14=0,r32 // rp 416{ .mmi; ADDP r14=0,r32 // rp
416 ADDP r15=0,r33 // ap 417 ADDP r15=0,r33 // ap
417 mov ar.lc=r10 } 418 mov ar.lc=r10 }
@@ -465,6 +466,7 @@ bn_mul_add_words:
465.skip 32 // makes the loop body aligned at 64-byte boundary 466.skip 32 // makes the loop body aligned at 64-byte boundary
466bn_sqr_words: 467bn_sqr_words:
467 .prologue 468 .prologue
469 .fframe 0
468 .save ar.pfs,r2 470 .save ar.pfs,r2
469{ .mii; alloc r2=ar.pfs,3,0,0,0 471{ .mii; alloc r2=ar.pfs,3,0,0,0
470 sxt4 r34=r34 };; 472 sxt4 r34=r34 };;
@@ -474,10 +476,9 @@ bn_sqr_words:
474 nop.f 0x0 476 nop.f 0x0
475(p6) br.ret.spnt.many b0 };; 477(p6) br.ret.spnt.many b0 };;
476 478
477{ .mii; sub r10=r34,r0,1
478 .save ar.lc,r3 479 .save ar.lc,r3
480{ .mii; sub r10=r34,r0,1
479 mov r3=ar.lc 481 mov r3=ar.lc
480 .save pr,r9
481 mov r9=pr };; 482 mov r9=pr };;
482 483
483 .body 484 .body
@@ -544,6 +545,7 @@ bn_sqr_words:
544.align 64 545.align 64
545bn_sqr_comba8: 546bn_sqr_comba8:
546 .prologue 547 .prologue
548 .fframe 0
547 .save ar.pfs,r2 549 .save ar.pfs,r2
548#if defined(_HPUX_SOURCE) && !defined(_LP64) 550#if defined(_HPUX_SOURCE) && !defined(_LP64)
549{ .mii; alloc r2=ar.pfs,2,1,0,0 551{ .mii; alloc r2=ar.pfs,2,1,0,0
@@ -615,6 +617,7 @@ bn_sqr_comba8:
615.align 64 617.align 64
616bn_mul_comba8: 618bn_mul_comba8:
617 .prologue 619 .prologue
620 .fframe 0
618 .save ar.pfs,r2 621 .save ar.pfs,r2
619#if defined(_HPUX_SOURCE) && !defined(_LP64) 622#if defined(_HPUX_SOURCE) && !defined(_LP64)
620{ .mii; alloc r2=ar.pfs,3,0,0,0 623{ .mii; alloc r2=ar.pfs,3,0,0,0
@@ -1172,6 +1175,7 @@ bn_mul_comba8:
1172.align 64 1175.align 64
1173bn_sqr_comba4: 1176bn_sqr_comba4:
1174 .prologue 1177 .prologue
1178 .fframe 0
1175 .save ar.pfs,r2 1179 .save ar.pfs,r2
1176#if defined(_HPUX_SOURCE) && !defined(_LP64) 1180#if defined(_HPUX_SOURCE) && !defined(_LP64)
1177{ .mii; alloc r2=ar.pfs,2,1,0,0 1181{ .mii; alloc r2=ar.pfs,2,1,0,0
@@ -1204,6 +1208,7 @@ bn_sqr_comba4:
1204.align 64 1208.align 64
1205bn_mul_comba4: 1209bn_mul_comba4:
1206 .prologue 1210 .prologue
1211 .fframe 0
1207 .save ar.pfs,r2 1212 .save ar.pfs,r2
1208#if defined(_HPUX_SOURCE) && !defined(_LP64) 1213#if defined(_HPUX_SOURCE) && !defined(_LP64)
1209{ .mii; alloc r2=ar.pfs,3,0,0,0 1214{ .mii; alloc r2=ar.pfs,3,0,0,0
@@ -1406,11 +1411,11 @@ equ=p24
1406.align 64 1411.align 64
1407bn_div_words: 1412bn_div_words:
1408 .prologue 1413 .prologue
1414 .fframe 0
1409 .save ar.pfs,r2 1415 .save ar.pfs,r2
1410{ .mii; alloc r2=ar.pfs,3,5,0,8
1411 .save b0,r3 1416 .save b0,r3
1417{ .mii; alloc r2=ar.pfs,3,5,0,8
1412 mov r3=b0 1418 mov r3=b0
1413 .save pr,r10
1414 mov r10=pr };; 1419 mov r10=pr };;
1415{ .mmb; cmp.eq p6,p0=r34,r0 1420{ .mmb; cmp.eq p6,p0=r34,r0
1416 mov r8=-1 1421 mov r8=-1