summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/sha/asm/sha512-sparcv9.pl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/sha/asm/sha512-sparcv9.pl20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/lib/libcrypto/sha/asm/sha512-sparcv9.pl b/src/lib/libcrypto/sha/asm/sha512-sparcv9.pl
index 585740789e..3c93799446 100644
--- a/src/lib/libcrypto/sha/asm/sha512-sparcv9.pl
+++ b/src/lib/libcrypto/sha/asm/sha512-sparcv9.pl
@@ -386,7 +386,7 @@ $code.=<<___ if ($bits==64);
386.register %g3,#scratch 386.register %g3,#scratch
387___ 387___
388$code.=<<___; 388$code.=<<___;
389.section ".text",#alloc,#execinstr 389.section ".rodata",#alloc
390 390
391.align 64 391.align 64
392K${label}: 392K${label}:
@@ -457,9 +457,17 @@ ___
457} 457}
458$code.=<<___; 458$code.=<<___;
459.size K${label},.-K${label} 459.size K${label},.-K${label}
460
461.section ".text",#alloc,#execinstr
460.globl sha${label}_block_data_order 462.globl sha${label}_block_data_order
461sha${label}_block_data_order: 463sha${label}_block_data_order:
462 save %sp,`-$frame-$locals`,%sp 464 save %sp,`-$frame-$locals`,%sp
465#ifdef __PIC__
466 sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5
467 rd %pc, %o4
468 or %o5, %lo(_GLOBAL_OFFSET_TABLE_+4), %o5
469 add %o5, %o4, %o5
470#endif
463 and $inp,`$align-1`,$tmp31 471 and $inp,`$align-1`,$tmp31
464 sllx $len,`log(16*$SZ)/log(2)`,$len 472 sllx $len,`log(16*$SZ)/log(2)`,$len
465 andn $inp,`$align-1`,$inp 473 andn $inp,`$align-1`,$inp
@@ -471,8 +479,12 @@ $code.=<<___ if ($SZ==8); # SHA512
471 sub $tmp32,$tmp31,$tmp32 479 sub $tmp32,$tmp31,$tmp32
472___ 480___
473$code.=<<___; 481$code.=<<___;
474.Lpic: call .+8 482#ifdef __PIC__
475 add %o7,K${label}-.Lpic,$Ktbl 483 set K${label}, $Ktbl
484 ldx [$Ktbl+%o5], $Ktbl
485#else
486 set K${label}, $Ktbl
487#endif
476 488
477 $LD [$ctx+`0*$SZ`],$A 489 $LD [$ctx+`0*$SZ`],$A
478 $LD [$ctx+`1*$SZ`],$B 490 $LD [$ctx+`1*$SZ`],$B
@@ -585,8 +597,6 @@ $code.=<<___;
585 restore 597 restore
586.type sha${label}_block_data_order,#function 598.type sha${label}_block_data_order,#function
587.size sha${label}_block_data_order,(.-sha${label}_block_data_order) 599.size sha${label}_block_data_order,(.-sha${label}_block_data_order)
588.asciz "SHA${label} block transform for SPARCv9, CRYPTOGAMS by <appro\@openssl.org>"
589.align 4
590___ 600___
591 601
592$code =~ s/\`([^\`]*)\`/eval $1/gem; 602$code =~ s/\`([^\`]*)\`/eval $1/gem;