1 # This patch fixes the invalid use of 64-bit instruction (srlx) by 32-bit |
|
2 # applications. This patch is from the following commit in the upstream: |
|
3 # https://github.com/openssl/openssl/commit/f198cc43a0eca4bf1a8e7f60c51af560f4346dc8 |
|
4 --- a/crypto/des/asm/dest4-sparcv9.pl 2016-08-04 14:20:26.610683970 -0700 |
|
5 +++ b/crypto/des/asm/dest4-sparcv9.pl 2016-08-04 14:22:33.339076315 -0700 |
|
6 @@ -96,7 +96,7 @@ |
|
7 des_t4_cbc_encrypt: |
|
8 cmp $len, 0 |
|
9 be,pn $::size_t_cc, .Lcbc_abort |
|
10 - nop |
|
11 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
12 ld [$ivec + 0], %f0 ! load ivec |
|
13 ld [$ivec + 4], %f1 |
|
14 |
|
15 @@ -197,7 +197,7 @@ |
|
16 des_t4_cbc_decrypt: |
|
17 cmp $len, 0 |
|
18 be,pn $::size_t_cc, .Lcbc_abort |
|
19 - nop |
|
20 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
21 ld [$ivec + 0], %f2 ! load ivec |
|
22 ld [$ivec + 4], %f3 |
|
23 |
|
24 @@ -305,7 +305,7 @@ |
|
25 des_t4_ede3_cbc_encrypt: |
|
26 cmp $len, 0 |
|
27 be,pn $::size_t_cc, .Lcbc_abort |
|
28 - nop |
|
29 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
30 ld [$ivec + 0], %f0 ! load ivec |
|
31 ld [$ivec + 4], %f1 |
|
32 |
|
33 @@ -457,7 +457,7 @@ |
|
34 des_t4_ede3_cbc_decrypt: |
|
35 cmp $len, 0 |
|
36 be,pn $::size_t_cc, .Lcbc_abort |
|
37 - nop |
|
38 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
39 ld [$ivec + 0], %f2 ! load ivec |
|
40 ld [$ivec + 4], %f3 |
|
41 |
|
42 --- a/crypto/perlasm/sparcv9_modes.pl 2016-08-04 14:24:29.877624460 -0700 |
|
43 +++ b/crypto/perlasm/sparcv9_modes.pl 2016-08-04 14:27:18.552931245 -0700 |
|
44 @@ -37,6 +37,7 @@ |
|
45 save %sp, -$::frame, %sp |
|
46 cmp $len, 0 |
|
47 be,pn $::size_t_cc, .L${bits}_cbc_enc_abort |
|
48 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
49 sub $inp, $out, $blk_init ! $inp!=$out |
|
50 ___ |
|
51 $::code.=<<___ if (!$::evp); |
|
52 @@ -254,6 +255,7 @@ |
|
53 save %sp, -$::frame, %sp |
|
54 cmp $len, 0 |
|
55 be,pn $::size_t_cc, .L${bits}_cbc_dec_abort |
|
56 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
57 sub $inp, $out, $blk_init ! $inp!=$out |
|
58 ___ |
|
59 $::code.=<<___ if (!$::evp); |
|
60 @@ -613,6 +615,7 @@ |
|
61 .align 32 |
|
62 ${alg}${bits}_t4_ctr32_encrypt: |
|
63 save %sp, -$::frame, %sp |
|
64 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
65 |
|
66 prefetch [$inp], 20 |
|
67 prefetch [$inp + 63], 20 |
|
68 @@ -916,6 +919,7 @@ |
|
69 .align 32 |
|
70 ${alg}${bits}_t4_xts_${dir}crypt: |
|
71 save %sp, -$::frame-16, %sp |
|
72 + srln $len, 0, $len ! needed on v8+, "nop" on v9 |
|
73 |
|
74 mov $ivec, %o0 |
|
75 add %fp, $::bias-16, %o1 |
|