diff options
| author | miod <> | 2023-01-13 17:11:41 +0000 |
|---|---|---|
| committer | miod <> | 2023-01-13 17:11:41 +0000 |
| commit | 364fc1ecd2d96b869246574350c6925835b991ab (patch) | |
| tree | 754902f7e6ad288b35b04ef817ed997460a00546 /src/lib/libcrypto/aes | |
| parent | f80a4029bb2f43fe5f0270857d48bc9d41d3ea4e (diff) | |
| download | openbsd-364fc1ecd2d96b869246574350c6925835b991ab.tar.gz openbsd-364fc1ecd2d96b869246574350c6925835b991ab.tar.bz2 openbsd-364fc1ecd2d96b869246574350c6925835b991ab.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 jsing@ kettenis@
Diffstat (limited to 'src/lib/libcrypto/aes')
| -rw-r--r-- | src/lib/libcrypto/aes/asm/aes-parisc.pl | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-parisc.pl b/src/lib/libcrypto/aes/asm/aes-parisc.pl index f12a1c18ec..43dbfc108d 100644 --- a/src/lib/libcrypto/aes/asm/aes-parisc.pl +++ b/src/lib/libcrypto/aes/asm/aes-parisc.pl | |||
| @@ -64,12 +64,7 @@ $rounds="%r29"; | |||
| 64 | 64 | ||
| 65 | $code=<<___; | 65 | $code=<<___; |
| 66 | .LEVEL $LEVEL | 66 | .LEVEL $LEVEL |
| 67 | #if 0 | ||
| 68 | .SPACE \$TEXT\$ | ||
| 69 | .SUBSPA \$CODE\$,QUAD=0,ALIGN=8,ACCESS=0x2C,CODE_ONLY | ||
| 70 | #else | ||
| 71 | .text | 67 | .text |
| 72 | #endif | ||
| 73 | 68 | ||
| 74 | .EXPORT AES_encrypt,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR | 69 | .EXPORT AES_encrypt,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR |
| 75 | .ALIGN 64 | 70 | .ALIGN 64 |
| @@ -95,11 +90,14 @@ AES_encrypt | |||
| 95 | $PUSH %r17,`-$FRAME+14*$SIZE_T`(%sp) | 90 | $PUSH %r17,`-$FRAME+14*$SIZE_T`(%sp) |
| 96 | $PUSH %r18,`-$FRAME+15*$SIZE_T`(%sp) | 91 | $PUSH %r18,`-$FRAME+15*$SIZE_T`(%sp) |
| 97 | 92 | ||
| 98 | blr %r0,$tbl | ||
| 99 | ldi 3,$t0 | 93 | ldi 3,$t0 |
| 100 | L\$enc_pic | 94 | #ifdef __PIC__ |
| 101 | andcm $tbl,$t0,$tbl | 95 | addil LT'L\$AES_Te, %r19 |
| 102 | ldo L\$AES_Te-L\$enc_pic($tbl),$tbl | 96 | ldw RT'L\$AES_Te(%r1), $tbl |
| 97 | #else | ||
| 98 | ldil L'L\$AES_Te, %t1 | ||
| 99 | ldo R'L\$AES_Te(%t1), $tbl | ||
| 100 | #endif | ||
| 103 | 101 | ||
| 104 | and $inp,$t0,$t0 | 102 | and $inp,$t0,$t0 |
| 105 | sub $inp,$t0,$inp | 103 | sub $inp,$t0,$inp |
| @@ -439,6 +437,7 @@ L\$enc_last | |||
| 439 | xor $acc15,$s3,$s3 | 437 | xor $acc15,$s3,$s3 |
| 440 | .PROCEND | 438 | .PROCEND |
| 441 | 439 | ||
| 440 | .section .rodata | ||
| 442 | .ALIGN 64 | 441 | .ALIGN 64 |
| 443 | L\$AES_Te | 442 | L\$AES_Te |
| 444 | .WORD 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d | 443 | .WORD 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d |
| @@ -537,6 +536,7 @@ L\$AES_Te | |||
| 537 | .BYTE 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf | 536 | .BYTE 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf |
| 538 | .BYTE 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 | 537 | .BYTE 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 |
| 539 | .BYTE 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 | 538 | .BYTE 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 |
| 539 | .previous | ||
| 540 | ___ | 540 | ___ |
| 541 | 541 | ||
| 542 | $code.=<<___; | 542 | $code.=<<___; |
| @@ -564,11 +564,14 @@ AES_decrypt | |||
| 564 | $PUSH %r17,`-$FRAME+14*$SIZE_T`(%sp) | 564 | $PUSH %r17,`-$FRAME+14*$SIZE_T`(%sp) |
| 565 | $PUSH %r18,`-$FRAME+15*$SIZE_T`(%sp) | 565 | $PUSH %r18,`-$FRAME+15*$SIZE_T`(%sp) |
| 566 | 566 | ||
| 567 | blr %r0,$tbl | ||
| 568 | ldi 3,$t0 | 567 | ldi 3,$t0 |
| 569 | L\$dec_pic | 568 | #ifdef __PIC__ |
| 570 | andcm $tbl,$t0,$tbl | 569 | addil LT'L\$AES_Td, %r19 |
| 571 | ldo L\$AES_Td-L\$dec_pic($tbl),$tbl | 570 | ldw RT'L\$AES_Td(%r1), $tbl |
| 571 | #else | ||
| 572 | ldil L'L\$AES_Td, %t1 | ||
| 573 | ldo R'L\$AES_Td(%t1), $tbl | ||
| 574 | #endif | ||
| 572 | 575 | ||
| 573 | and $inp,$t0,$t0 | 576 | and $inp,$t0,$t0 |
| 574 | sub $inp,$t0,$inp | 577 | sub $inp,$t0,$inp |
| @@ -908,6 +911,7 @@ L\$dec_last | |||
| 908 | xor $acc15,$s3,$s3 | 911 | xor $acc15,$s3,$s3 |
| 909 | .PROCEND | 912 | .PROCEND |
| 910 | 913 | ||
| 914 | .section .rodata | ||
| 911 | .ALIGN 64 | 915 | .ALIGN 64 |
| 912 | L\$AES_Td | 916 | L\$AES_Td |
| 913 | .WORD 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96 | 917 | .WORD 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96 |
| @@ -1006,9 +1010,7 @@ L\$AES_Td | |||
| 1006 | .BYTE 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 | 1010 | .BYTE 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 |
| 1007 | .BYTE 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 | 1011 | .BYTE 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 |
| 1008 | .BYTE 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d | 1012 | .BYTE 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d |
| 1009 | 1013 | .previous | |
| 1010 | .data | ||
| 1011 | .STRINGZ "AES for PA-RISC, CRYPTOGAMS by <appro\@openssl.org>" | ||
| 1012 | ___ | 1014 | ___ |
| 1013 | 1015 | ||
| 1014 | foreach (split("\n",$code)) { | 1016 | foreach (split("\n",$code)) { |
