summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/aes/asm/aes-parisc.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/aes/asm/aes-parisc.pl')
-rw-r--r--src/lib/libcrypto/aes/asm/aes-parisc.pl34
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
100L\$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
443L\$AES_Te 442L\$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
569L\$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
912L\$AES_Td 916L\$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
1014foreach (split("\n",$code)) { 1016foreach (split("\n",$code)) {