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; |