~ubuntu-branches/ubuntu/trusty/openssl/trusty

« back to all changes in this revision

Viewing changes to debian/patches/ppc64-support

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-12-05 14:34:48 UTC
  • Revision ID: package-import@ubuntu.com-20131205143448-9bj4o92owv7n5c4w
Tags: 1.0.1e-4ubuntu3
Update debian configuration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Index: b/Configure
2
 
===================================================================
3
1
--- a/Configure
4
2
+++ b/Configure
5
 
@@ -378,6 +378,7 @@
 
3
@@ -373,6 +373,7 @@
6
4
 "debian-powerpc","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
7
5
 "debian-powerpcspe","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc32_asm}:linux32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
8
6
 "debian-ppc64","gcc:-m64 -DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
9
 
+"debian-ppc64el","gcc:-m64 -DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
7
+"debian-ppc64el","gcc:-m64 -DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
10
8
 "debian-s390","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", 
11
9
 "debian-s390x","gcc:-DB_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
12
10
 "debian-sh3",   "gcc:-DL_ENDIAN -DTERMIO ${debian_cflags}::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
11
@@ -403,6 +404,7 @@
 
12
 ####
 
13
 "linux-generic64","gcc:-DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
14
 "linux-ppc64", "gcc:-m64 -DB_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
 
15
+"linux-ppc64le",       "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
 
16
 "linux-ia64",  "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
17
 "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
18
 "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
19
--- a/crypto/aes/asm/aes-ppc.pl
 
20
+++ b/crypto/aes/asm/aes-ppc.pl
 
21
@@ -45,6 +45,12 @@
 
22
        $PUSH   ="stw";
 
23
 } else { die "nonsense $flavour"; }
 
24
 
 
25
+$LITTLE_ENDIAN=0;
 
26
+if ($flavour =~ /le$/) {
 
27
+       die "little-endian is 64-bit only: $flavour" if ($SIZE_T == 4);
 
28
+       $LITTLE_ENDIAN=1;
 
29
+}
 
30
+
 
31
 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
 
32
 ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or
 
33
 ( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or
 
34
@@ -365,16 +371,60 @@
 
35
        bne     Lenc_unaligned
 
36
 
 
37
 Lenc_unaligned_ok:
 
38
+___
 
39
+$code.=<<___ if (!$LITTLE_ENDIAN);
 
40
        lwz     $s0,0($inp)
 
41
        lwz     $s1,4($inp)
 
42
        lwz     $s2,8($inp)
 
43
        lwz     $s3,12($inp)
 
44
+___
 
45
+$code.=<<___ if ($LITTLE_ENDIAN);
 
46
+       lwz     $t0,0($inp)
 
47
+       lwz     $t1,4($inp)
 
48
+       lwz     $t2,8($inp)
 
49
+       lwz     $t3,12($inp)
 
50
+       rotlwi  $s0,$t0,8
 
51
+       rotlwi  $s1,$t1,8
 
52
+       rotlwi  $s2,$t2,8
 
53
+       rotlwi  $s3,$t3,8
 
54
+       rlwimi  $s0,$t0,24,0,7
 
55
+       rlwimi  $s1,$t1,24,0,7
 
56
+       rlwimi  $s2,$t2,24,0,7
 
57
+       rlwimi  $s3,$t3,24,0,7
 
58
+       rlwimi  $s0,$t0,24,16,23
 
59
+       rlwimi  $s1,$t1,24,16,23
 
60
+       rlwimi  $s2,$t2,24,16,23
 
61
+       rlwimi  $s3,$t3,24,16,23
 
62
+___
 
63
+$code.=<<___;
 
64
        bl      LAES_Te
 
65
        bl      Lppc_AES_encrypt_compact
 
66
+___
 
67
+$code.=<<___ if ($LITTLE_ENDIAN);
 
68
+       rotlwi  $t0,$s0,8
 
69
+       rotlwi  $t1,$s1,8
 
70
+       rotlwi  $t2,$s2,8
 
71
+       rotlwi  $t3,$s3,8
 
72
+       rlwimi  $t0,$s0,24,0,7
 
73
+       rlwimi  $t1,$s1,24,0,7
 
74
+       rlwimi  $t2,$s2,24,0,7
 
75
+       rlwimi  $t3,$s3,24,0,7
 
76
+       rlwimi  $t0,$s0,24,16,23
 
77
+       rlwimi  $t1,$s1,24,16,23
 
78
+       rlwimi  $t2,$s2,24,16,23
 
79
+       rlwimi  $t3,$s3,24,16,23
 
80
+       stw     $t0,0($out)
 
81
+       stw     $t1,4($out)
 
82
+       stw     $t2,8($out)
 
83
+       stw     $t3,12($out)
 
84
+___
 
85
+$code.=<<___ if (!$LITTLE_ENDIAN);
 
86
        stw     $s0,0($out)
 
87
        stw     $s1,4($out)
 
88
        stw     $s2,8($out)
 
89
        stw     $s3,12($out)
 
90
+___
 
91
+$code.=<<___;
 
92
        b       Lenc_done
 
93
 
 
94
 Lenc_unaligned:
 
95
@@ -799,16 +849,60 @@
 
96
        bne     Ldec_unaligned
 
97
 
 
98
 Ldec_unaligned_ok:
 
99
+___
 
100
+$code.=<<___ if (!$LITTLE_ENDIAN);
 
101
        lwz     $s0,0($inp)
 
102
        lwz     $s1,4($inp)
 
103
        lwz     $s2,8($inp)
 
104
        lwz     $s3,12($inp)
 
105
+___
 
106
+$code.=<<___ if ($LITTLE_ENDIAN);
 
107
+       lwz     $t0,0($inp)
 
108
+       lwz     $t1,4($inp)
 
109
+       lwz     $t2,8($inp)
 
110
+       lwz     $t3,12($inp)
 
111
+       rotlwi  $s0,$t0,8
 
112
+       rotlwi  $s1,$t1,8
 
113
+       rotlwi  $s2,$t2,8
 
114
+       rotlwi  $s3,$t3,8
 
115
+       rlwimi  $s0,$t0,24,0,7
 
116
+       rlwimi  $s1,$t1,24,0,7
 
117
+       rlwimi  $s2,$t2,24,0,7
 
118
+       rlwimi  $s3,$t3,24,0,7
 
119
+       rlwimi  $s0,$t0,24,16,23
 
120
+       rlwimi  $s1,$t1,24,16,23
 
121
+       rlwimi  $s2,$t2,24,16,23
 
122
+       rlwimi  $s3,$t3,24,16,23
 
123
+___
 
124
+$code.=<<___;
 
125
        bl      LAES_Td
 
126
        bl      Lppc_AES_decrypt_compact
 
127
+___
 
128
+$code.=<<___ if ($LITTLE_ENDIAN);
 
129
+       rotlwi  $t0,$s0,8
 
130
+       rotlwi  $t1,$s1,8
 
131
+       rotlwi  $t2,$s2,8
 
132
+       rotlwi  $t3,$s3,8
 
133
+       rlwimi  $t0,$s0,24,0,7
 
134
+       rlwimi  $t1,$s1,24,0,7
 
135
+       rlwimi  $t2,$s2,24,0,7
 
136
+       rlwimi  $t3,$s3,24,0,7
 
137
+       rlwimi  $t0,$s0,24,16,23
 
138
+       rlwimi  $t1,$s1,24,16,23
 
139
+       rlwimi  $t2,$s2,24,16,23
 
140
+       rlwimi  $t3,$s3,24,16,23
 
141
+       stw     $t0,0($out)
 
142
+       stw     $t1,4($out)
 
143
+       stw     $t2,8($out)
 
144
+       stw     $t3,12($out)
 
145
+___
 
146
+$code.=<<___ if (!$LITTLE_ENDIAN);
 
147
        stw     $s0,0($out)
 
148
        stw     $s1,4($out)
 
149
        stw     $s2,8($out)
 
150
        stw     $s3,12($out)
 
151
+___
 
152
+$code.=<<___;
 
153
        b       Ldec_done
 
154
 
 
155
 Ldec_unaligned:
 
156
--- a/crypto/perlasm/ppc-xlate.pl
 
157
+++ b/crypto/perlasm/ppc-xlate.pl
 
158
@@ -27,7 +27,8 @@
 
159
        /osx/           && do { $name = "_$name";
 
160
                                last;
 
161
                              };
 
162
-       /linux.*32/     && do { $ret .= ".globl $name\n";
 
163
+       /linux.*32/     ||
 
164
+       /linux.*64le/   && do { $ret .= ".globl $name\n";
 
165
                                $ret .= ".type  $name,\@function";
 
166
                                last;
 
167
                              };
 
168
@@ -62,7 +63,7 @@
 
169
     ".machine  $arch";
 
170
 };
 
171
 my $size = sub {
 
172
-    if ($flavour =~ /linux.*32/)
 
173
+    if ($flavour =~ /linux.*32/ || $flavour =~ /linux.*64le/)
 
174
     {  shift;
 
175
        ".size  " . join(",",@_);
 
176
     }
 
177
@@ -77,6 +78,25 @@
 
178
     else
 
179
     {  "";     }
 
180
 };
 
181
+my $quad = sub {
 
182
+    shift;
 
183
+    my @ret;
 
184
+    my ($hi,$lo);
 
185
+    for (@_) {
 
186
+       if (/^0x([0-9a-f]*?)([0-9a-f]{1,8})$/io)
 
187
+       {  $hi=$1?"0x$1":"0"; $lo="0x$2";  }
 
188
+       elsif (/^([0-9]+)$/o)
 
189
+       {  $hi=$1>>32; $lo=$1&0xffffffff;  } # error-prone with 32-bit perl
 
190
+       else
 
191
+       {  $hi=undef; $lo=$_; }
 
192
+
 
193
+       if (defined($hi))
 
194
+       {  push(@ret,$flavour=~/le$/o?".long\t$lo,$hi":".long\t$hi,$lo");  }
 
195
+       else
 
196
+       {  push(@ret,".quad     $lo");  }
 
197
+    }
 
198
+    join("\n",@ret);
 
199
+};
 
200
 
 
201
 ################################################################
 
202
 # simplified mnemonics not handled by at least one assembler
 
203
--- a/crypto/sha/asm/sha1-ppc.pl
 
204
+++ b/crypto/sha/asm/sha1-ppc.pl
 
205
@@ -38,6 +38,14 @@
 
206
        $PUSH   ="stw";
 
207
 } else { die "nonsense $flavour"; }
 
208
 
 
209
+# Define endianess based on flavour
 
210
+# i.e.: linux64le
 
211
+$LITTLE_ENDIAN=0;
 
212
+if ($flavour =~ /le$/) {
 
213
+       die "little-endian is 64-bit only: $flavour" if ($SIZE_T == 4);
 
214
+       $LITTLE_ENDIAN=1;
 
215
+}
 
216
+
 
217
 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
 
218
 ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or
 
219
 ( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or
 
220
@@ -68,14 +76,28 @@
 
221
 @X=("r16","r17","r18","r19","r20","r21","r22","r23",
 
222
     "r24","r25","r26","r27","r28","r29","r30","r31");
 
223
 
 
224
+sub loadbe {
 
225
+my ($dst, $src, $temp_reg) = @_;
 
226
+$code.=<<___ if (!$LITTLE_ENDIAN);
 
227
+       lwz     $dst,$src
 
228
+___
 
229
+$code.=<<___ if ($LITTLE_ENDIAN);
 
230
+       lwz     $temp_reg,$src
 
231
+       rotlwi  $dst,$temp_reg,8
 
232
+       rlwimi  $dst,$temp_reg,24,0,7
 
233
+       rlwimi  $dst,$temp_reg,24,16,23
 
234
+___
 
235
+}
 
236
+
 
237
 sub BODY_00_19 {
 
238
 my ($i,$a,$b,$c,$d,$e,$f)=@_;
 
239
 my $j=$i+1;
 
240
-$code.=<<___ if ($i==0);
 
241
-       lwz     @X[$i],`$i*4`($inp)
 
242
-___
 
243
+
 
244
+       # Since the last value of $f is discarded, we can use
 
245
+       # it as a temp reg to swap byte-order when needed.
 
246
+       loadbe("@X[$i]","`$i*4`($inp)",$f) if ($i==0);
 
247
+       loadbe("@X[$j]","`$j*4`($inp)",$f) if ($i<15);
 
248
 $code.=<<___ if ($i<15);
 
249
-       lwz     @X[$j],`$j*4`($inp)
 
250
        add     $f,$K,$e
 
251
        rotlwi  $e,$a,5
 
252
        add     $f,$f,@X[$i]
 
253
--- a/crypto/sha/asm/sha512-ppc.pl
 
254
+++ b/crypto/sha/asm/sha512-ppc.pl
 
255
@@ -56,6 +56,12 @@
 
256
        $PUSH="stw";
 
257
 } else { die "nonsense $flavour"; }
 
258
 
 
259
+$LITTLE_ENDIAN=0;
 
260
+if ($flavour =~ /le$/) {
 
261
+       die "little-endian is 64-bit only: $flavour" if ($SIZE_T==4);
 
262
+       $LITTLE_ENDIAN=1;
 
263
+}
 
264
+
 
265
 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
 
266
 ( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or
 
267
 ( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or
 
268
@@ -314,16 +320,33 @@
 
269
 Lsha2_block_private:
 
270
 ___
 
271
 for($i=0;$i<16;$i++) {
 
272
-$code.=<<___ if ($SZ==4);
 
273
+$code.=<<___ if ($SZ==4 && !$LITTLE_ENDIAN);
 
274
        lwz     @X[$i],`$i*$SZ`($inp)
 
275
 ___
 
276
+$code.=<<___ if ($SZ==4 && $LITTLE_ENDIAN);
 
277
+       lwz     $a0,`$i*$SZ`($inp)
 
278
+       rotlwi  @X[$i],$a0,8
 
279
+       rlwimi  @X[$i],$a0,24,0,7
 
280
+       rlwimi  @X[$i],$a0,24,16,23
 
281
+___
 
282
 # 64-bit loads are split to 2x32-bit ones, as CPU can't handle
 
283
 # unaligned 64-bit loads, only 32-bit ones...
 
284
-$code.=<<___ if ($SZ==8);
 
285
+$code.=<<___ if ($SZ==8 && !$LITTLE_ENDIAN);
 
286
        lwz     $t0,`$i*$SZ`($inp)
 
287
        lwz     @X[$i],`$i*$SZ+4`($inp)
 
288
        insrdi  @X[$i],$t0,32,0
 
289
 ___
 
290
+$code.=<<___ if ($SZ==8 && $LITTLE_ENDIAN);
 
291
+       lwz     $a0,`$i*$SZ`($inp)
 
292
+        lwz    $a1,`$i*$SZ+4`($inp)
 
293
+       rotlwi  $t0,$a0,8
 
294
+        rotlwi @X[$i],$a1,8
 
295
+       rlwimi  $t0,$a0,24,0,7
 
296
+        rlwimi @X[$i],$a1,24,0,7
 
297
+       rlwimi  $t0,$a0,24,16,23
 
298
+        rlwimi @X[$i],$a1,24,16,23
 
299
+       insrdi  @X[$i],$t0,32,0
 
300
+___
 
301
        &ROUND_00_15($i,@V);
 
302
        unshift(@V,pop(@V));
 
303
 }
 
304
@@ -395,46 +418,46 @@
 
305
        .space  `64-9*4`
 
306
 ___
 
307
 $code.=<<___ if ($SZ==8);
 
308
-       .long   0x428a2f98,0xd728ae22,0x71374491,0x23ef65cd
 
309
-       .long   0xb5c0fbcf,0xec4d3b2f,0xe9b5dba5,0x8189dbbc
 
310
-       .long   0x3956c25b,0xf348b538,0x59f111f1,0xb605d019
 
311
-       .long   0x923f82a4,0xaf194f9b,0xab1c5ed5,0xda6d8118
 
312
-       .long   0xd807aa98,0xa3030242,0x12835b01,0x45706fbe
 
313
-       .long   0x243185be,0x4ee4b28c,0x550c7dc3,0xd5ffb4e2
 
314
-       .long   0x72be5d74,0xf27b896f,0x80deb1fe,0x3b1696b1
 
315
-       .long   0x9bdc06a7,0x25c71235,0xc19bf174,0xcf692694
 
316
-       .long   0xe49b69c1,0x9ef14ad2,0xefbe4786,0x384f25e3
 
317
-       .long   0x0fc19dc6,0x8b8cd5b5,0x240ca1cc,0x77ac9c65
 
318
-       .long   0x2de92c6f,0x592b0275,0x4a7484aa,0x6ea6e483
 
319
-       .long   0x5cb0a9dc,0xbd41fbd4,0x76f988da,0x831153b5
 
320
-       .long   0x983e5152,0xee66dfab,0xa831c66d,0x2db43210
 
321
-       .long   0xb00327c8,0x98fb213f,0xbf597fc7,0xbeef0ee4
 
322
-       .long   0xc6e00bf3,0x3da88fc2,0xd5a79147,0x930aa725
 
323
-       .long   0x06ca6351,0xe003826f,0x14292967,0x0a0e6e70
 
324
-       .long   0x27b70a85,0x46d22ffc,0x2e1b2138,0x5c26c926
 
325
-       .long   0x4d2c6dfc,0x5ac42aed,0x53380d13,0x9d95b3df
 
326
-       .long   0x650a7354,0x8baf63de,0x766a0abb,0x3c77b2a8
 
327
-       .long   0x81c2c92e,0x47edaee6,0x92722c85,0x1482353b
 
328
-       .long   0xa2bfe8a1,0x4cf10364,0xa81a664b,0xbc423001
 
329
-       .long   0xc24b8b70,0xd0f89791,0xc76c51a3,0x0654be30
 
330
-       .long   0xd192e819,0xd6ef5218,0xd6990624,0x5565a910
 
331
-       .long   0xf40e3585,0x5771202a,0x106aa070,0x32bbd1b8
 
332
-       .long   0x19a4c116,0xb8d2d0c8,0x1e376c08,0x5141ab53
 
333
-       .long   0x2748774c,0xdf8eeb99,0x34b0bcb5,0xe19b48a8
 
334
-       .long   0x391c0cb3,0xc5c95a63,0x4ed8aa4a,0xe3418acb
 
335
-       .long   0x5b9cca4f,0x7763e373,0x682e6ff3,0xd6b2b8a3
 
336
-       .long   0x748f82ee,0x5defb2fc,0x78a5636f,0x43172f60
 
337
-       .long   0x84c87814,0xa1f0ab72,0x8cc70208,0x1a6439ec
 
338
-       .long   0x90befffa,0x23631e28,0xa4506ceb,0xde82bde9
 
339
-       .long   0xbef9a3f7,0xb2c67915,0xc67178f2,0xe372532b
 
340
-       .long   0xca273ece,0xea26619c,0xd186b8c7,0x21c0c207
 
341
-       .long   0xeada7dd6,0xcde0eb1e,0xf57d4f7f,0xee6ed178
 
342
-       .long   0x06f067aa,0x72176fba,0x0a637dc5,0xa2c898a6
 
343
-       .long   0x113f9804,0xbef90dae,0x1b710b35,0x131c471b
 
344
-       .long   0x28db77f5,0x23047d84,0x32caab7b,0x40c72493
 
345
-       .long   0x3c9ebe0a,0x15c9bebc,0x431d67c4,0x9c100d4c
 
346
-       .long   0x4cc5d4be,0xcb3e42b6,0x597f299c,0xfc657e2a
 
347
-       .long   0x5fcb6fab,0x3ad6faec,0x6c44198c,0x4a475817
 
348
+       .quad   0x428a2f98d728ae22,0x7137449123ef65cd
 
349
+       .quad   0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
 
350
+       .quad   0x3956c25bf348b538,0x59f111f1b605d019
 
351
+       .quad   0x923f82a4af194f9b,0xab1c5ed5da6d8118
 
352
+       .quad   0xd807aa98a3030242,0x12835b0145706fbe
 
353
+       .quad   0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
 
354
+       .quad   0x72be5d74f27b896f,0x80deb1fe3b1696b1
 
355
+       .quad   0x9bdc06a725c71235,0xc19bf174cf692694
 
356
+       .quad   0xe49b69c19ef14ad2,0xefbe4786384f25e3
 
357
+       .quad   0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
 
358
+       .quad   0x2de92c6f592b0275,0x4a7484aa6ea6e483
 
359
+       .quad   0x5cb0a9dcbd41fbd4,0x76f988da831153b5
 
360
+       .quad   0x983e5152ee66dfab,0xa831c66d2db43210
 
361
+       .quad   0xb00327c898fb213f,0xbf597fc7beef0ee4
 
362
+       .quad   0xc6e00bf33da88fc2,0xd5a79147930aa725
 
363
+       .quad   0x06ca6351e003826f,0x142929670a0e6e70
 
364
+       .quad   0x27b70a8546d22ffc,0x2e1b21385c26c926
 
365
+       .quad   0x4d2c6dfc5ac42aed,0x53380d139d95b3df
 
366
+       .quad   0x650a73548baf63de,0x766a0abb3c77b2a8
 
367
+       .quad   0x81c2c92e47edaee6,0x92722c851482353b
 
368
+       .quad   0xa2bfe8a14cf10364,0xa81a664bbc423001
 
369
+       .quad   0xc24b8b70d0f89791,0xc76c51a30654be30
 
370
+       .quad   0xd192e819d6ef5218,0xd69906245565a910
 
371
+       .quad   0xf40e35855771202a,0x106aa07032bbd1b8
 
372
+       .quad   0x19a4c116b8d2d0c8,0x1e376c085141ab53
 
373
+       .quad   0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
 
374
+       .quad   0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
 
375
+       .quad   0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
 
376
+       .quad   0x748f82ee5defb2fc,0x78a5636f43172f60
 
377
+       .quad   0x84c87814a1f0ab72,0x8cc702081a6439ec
 
378
+       .quad   0x90befffa23631e28,0xa4506cebde82bde9
 
379
+       .quad   0xbef9a3f7b2c67915,0xc67178f2e372532b
 
380
+       .quad   0xca273eceea26619c,0xd186b8c721c0c207
 
381
+       .quad   0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
 
382
+       .quad   0x06f067aa72176fba,0x0a637dc5a2c898a6
 
383
+       .quad   0x113f9804bef90dae,0x1b710b35131c471b
 
384
+       .quad   0x28db77f523047d84,0x32caab7b40c72493
 
385
+       .quad   0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
 
386
+       .quad   0x4cc5d4becb3e42b6,0x597f299cfc657e2a
 
387
+       .quad   0x5fcb6fab3ad6faec,0x6c44198c4a475817
 
388
 ___
 
389
 $code.=<<___ if ($SZ==4);
 
390
        .long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5