diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/libcrypto/sha/asm/sha512-sparcv9.pl | 20 |
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 |
392 | K${label}: | 392 | K${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 |
461 | sha${label}_block_data_order: | 463 | sha${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; |