diff options
| author | miod <> | 2023-01-13 17:27:26 +0000 |
|---|---|---|
| committer | miod <> | 2023-01-13 17:27:26 +0000 |
| commit | 8c3fb8abc1c51703bbfb514f4fd1ba9885108be3 (patch) | |
| tree | 9aab92100156f42a43295dcb4074ba395f3a234d /src/lib/libcrypto/sha | |
| parent | 364fc1ecd2d96b869246574350c6925835b991ab (diff) | |
| download | openbsd-8c3fb8abc1c51703bbfb514f4fd1ba9885108be3.tar.gz openbsd-8c3fb8abc1c51703bbfb514f4fd1ba9885108be3.tar.bz2 openbsd-8c3fb8abc1c51703bbfb514f4fd1ba9885108be3.zip | |
Move all data tables from .text section to .rodata, and update the code to
fetch them correctly when building PIC. Also drop unused data, and remove
--no-execute-only from linker flags.
ok kettenis@
Diffstat (limited to 'src/lib/libcrypto/sha')
| -rw-r--r-- | src/lib/libcrypto/sha/asm/sha1-sparcv9.pl | 2 | ||||
| -rw-r--r-- | src/lib/libcrypto/sha/asm/sha1-sparcv9a.pl | 17 | ||||
| -rw-r--r-- | src/lib/libcrypto/sha/asm/sha512-sparcv9.pl | 20 |
3 files changed, 27 insertions, 12 deletions
diff --git a/src/lib/libcrypto/sha/asm/sha1-sparcv9.pl b/src/lib/libcrypto/sha/asm/sha1-sparcv9.pl index 5c161cecd6..5235c59e63 100644 --- a/src/lib/libcrypto/sha/asm/sha1-sparcv9.pl +++ b/src/lib/libcrypto/sha/asm/sha1-sparcv9.pl | |||
| @@ -275,8 +275,6 @@ $code.=<<___; | |||
| 275 | restore | 275 | restore |
| 276 | .type sha1_block_data_order,#function | 276 | .type sha1_block_data_order,#function |
| 277 | .size sha1_block_data_order,(.-sha1_block_data_order) | 277 | .size sha1_block_data_order,(.-sha1_block_data_order) |
| 278 | .asciz "SHA1 block transform for SPARCv9, CRYPTOGAMS by <appro\@openssl.org>" | ||
| 279 | .align 4 | ||
| 280 | ___ | 278 | ___ |
| 281 | 279 | ||
| 282 | $code =~ s/\`([^\`]*)\`/eval $1/gem; | 280 | $code =~ s/\`([^\`]*)\`/eval $1/gem; |
diff --git a/src/lib/libcrypto/sha/asm/sha1-sparcv9a.pl b/src/lib/libcrypto/sha/asm/sha1-sparcv9a.pl index e81a4dcb05..8e7674e9d2 100644 --- a/src/lib/libcrypto/sha/asm/sha1-sparcv9a.pl +++ b/src/lib/libcrypto/sha/asm/sha1-sparcv9a.pl | |||
| @@ -396,7 +396,7 @@ ___ | |||
| 396 | } | 396 | } |
| 397 | 397 | ||
| 398 | $code.=<<___; | 398 | $code.=<<___; |
| 399 | .section ".text",#alloc,#execinstr | 399 | .section ".rodata",#alloc |
| 400 | 400 | ||
| 401 | .align 64 | 401 | .align 64 |
| 402 | vis_const: | 402 | vis_const: |
| @@ -409,13 +409,22 @@ vis_const: | |||
| 409 | .type vis_const,#object | 409 | .type vis_const,#object |
| 410 | .size vis_const,(.-vis_const) | 410 | .size vis_const,(.-vis_const) |
| 411 | 411 | ||
| 412 | .section ".text",#alloc,#execinstr | ||
| 412 | .globl sha1_block_data_order | 413 | .globl sha1_block_data_order |
| 413 | sha1_block_data_order: | 414 | sha1_block_data_order: |
| 414 | save %sp,-$frame,%sp | 415 | save %sp,-$frame,%sp |
| 415 | add %fp,$bias-256,$base | 416 | add %fp,$bias-256,$base |
| 416 | 417 | ||
| 417 | 1: call .+8 | 418 | #ifdef __PIC__ |
| 418 | add %o7,vis_const-1b,$tmp0 | 419 | sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %o5 |
| 420 | rd %pc, %o4 | ||
| 421 | or %o5, %lo(_GLOBAL_OFFSET_TABLE_+4), %o5 | ||
| 422 | add %o5, %o4, %o5 | ||
| 423 | set vis_const, %o4 | ||
| 424 | ldx [%o4+%o5], %o4 | ||
| 425 | #else | ||
| 426 | set vis_const, %o4 | ||
| 427 | #endif | ||
| 419 | 428 | ||
| 420 | ldd [$tmp0+0],$VK_00_19 | 429 | ldd [$tmp0+0],$VK_00_19 |
| 421 | ldd [$tmp0+8],$VK_20_39 | 430 | ldd [$tmp0+8],$VK_20_39 |
| @@ -538,8 +547,6 @@ $code.=<<___; | |||
| 538 | restore | 547 | restore |
| 539 | .type sha1_block_data_order,#function | 548 | .type sha1_block_data_order,#function |
| 540 | .size sha1_block_data_order,(.-sha1_block_data_order) | 549 | .size sha1_block_data_order,(.-sha1_block_data_order) |
| 541 | .asciz "SHA1 block transform for SPARCv9a, CRYPTOGAMS by <appro\@openssl.org>" | ||
| 542 | .align 4 | ||
| 543 | ___ | 550 | ___ |
| 544 | 551 | ||
| 545 | # Purpose of these subroutines is to explicitly encode VIS instructions, | 552 | # Purpose of these subroutines is to explicitly encode VIS instructions, |
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; |
