| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 #!/usr/bin/env perl |  | 
| 2 |  | 
| 3 # ==================================================================== |  | 
| 4 # Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL |  | 
| 5 # project. The module is, however, dual licensed under OpenSSL and |  | 
| 6 # CRYPTOGAMS licenses depending on where you obtain it. For further |  | 
| 7 # details see http://www.openssl.org/~appro/cryptogams/. |  | 
| 8 # ==================================================================== |  | 
| 9 |  | 
| 10 # AES for PA-RISC. |  | 
| 11 # |  | 
| 12 # June 2009. |  | 
| 13 # |  | 
| 14 # The module is mechanical transliteration of aes-sparcv9.pl, but with |  | 
| 15 # a twist: S-boxes are compressed even further down to 1K+256B. On |  | 
| 16 # PA-7100LC performance is ~40% better than gcc 3.2 generated code and |  | 
| 17 # is about 33 cycles per byte processed with 128-bit key. Newer CPUs |  | 
| 18 # perform at 16 cycles per byte. It's not faster than code generated |  | 
| 19 # by vendor compiler, but recall that it has compressed S-boxes, which |  | 
| 20 # requires extra processing. |  | 
| 21 # |  | 
| 22 # Special thanks to polarhome.com for providing HP-UX account. |  | 
| 23 |  | 
| 24 $flavour = shift; |  | 
| 25 $output = shift; |  | 
| 26 open STDOUT,">$output"; |  | 
| 27 |  | 
| 28 if ($flavour =~ /64/) { |  | 
| 29         $LEVEL          ="2.0W"; |  | 
| 30         $SIZE_T         =8; |  | 
| 31         $FRAME_MARKER   =80; |  | 
| 32         $SAVED_RP       =16; |  | 
| 33         $PUSH           ="std"; |  | 
| 34         $PUSHMA         ="std,ma"; |  | 
| 35         $POP            ="ldd"; |  | 
| 36         $POPMB          ="ldd,mb"; |  | 
| 37 } else { |  | 
| 38         $LEVEL          ="1.0"; |  | 
| 39         $SIZE_T         =4; |  | 
| 40         $FRAME_MARKER   =48; |  | 
| 41         $SAVED_RP       =20; |  | 
| 42         $PUSH           ="stw"; |  | 
| 43         $PUSHMA         ="stwm"; |  | 
| 44         $POP            ="ldw"; |  | 
| 45         $POPMB          ="ldwm"; |  | 
| 46 } |  | 
| 47 |  | 
| 48 $FRAME=16*$SIZE_T+$FRAME_MARKER;# 16 saved regs + frame marker |  | 
| 49                                 #                 [+ argument transfer] |  | 
| 50 $inp="%r26";    # arg0 |  | 
| 51 $out="%r25";    # arg1 |  | 
| 52 $key="%r24";    # arg2 |  | 
| 53 |  | 
| 54 ($s0,$s1,$s2,$s3) = ("%r1","%r2","%r3","%r4"); |  | 
| 55 ($t0,$t1,$t2,$t3) = ("%r5","%r6","%r7","%r8"); |  | 
| 56 |  | 
| 57 ($acc0, $acc1, $acc2, $acc3, $acc4, $acc5, $acc6, $acc7, |  | 
| 58  $acc8, $acc9,$acc10,$acc11,$acc12,$acc13,$acc14,$acc15) = |  | 
| 59 ("%r9","%r10","%r11","%r12","%r13","%r14","%r15","%r16", |  | 
| 60 "%r17","%r18","%r19","%r20","%r21","%r22","%r23","%r26"); |  | 
| 61 |  | 
| 62 $tbl="%r28"; |  | 
| 63 $rounds="%r29"; |  | 
| 64 |  | 
| 65 $code=<<___; |  | 
| 66         .LEVEL  $LEVEL |  | 
| 67         .SPACE  \$TEXT\$ |  | 
| 68         .SUBSPA \$CODE\$,QUAD=0,ALIGN=8,ACCESS=0x2C,CODE_ONLY |  | 
| 69 |  | 
| 70         .EXPORT AES_encrypt,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR |  | 
| 71         .ALIGN  64 |  | 
| 72 AES_encrypt |  | 
| 73         .PROC |  | 
| 74         .CALLINFO       FRAME=`$FRAME-16*$SIZE_T`,NO_CALLS,SAVE_RP,ENTRY_GR=18 |  | 
| 75         .ENTRY |  | 
| 76         $PUSH   %r2,-$SAVED_RP(%sp)     ; standard prologue |  | 
| 77         $PUSHMA %r3,$FRAME(%sp) |  | 
| 78         $PUSH   %r4,`-$FRAME+1*$SIZE_T`(%sp) |  | 
| 79         $PUSH   %r5,`-$FRAME+2*$SIZE_T`(%sp) |  | 
| 80         $PUSH   %r6,`-$FRAME+3*$SIZE_T`(%sp) |  | 
| 81         $PUSH   %r7,`-$FRAME+4*$SIZE_T`(%sp) |  | 
| 82         $PUSH   %r8,`-$FRAME+5*$SIZE_T`(%sp) |  | 
| 83         $PUSH   %r9,`-$FRAME+6*$SIZE_T`(%sp) |  | 
| 84         $PUSH   %r10,`-$FRAME+7*$SIZE_T`(%sp) |  | 
| 85         $PUSH   %r11,`-$FRAME+8*$SIZE_T`(%sp) |  | 
| 86         $PUSH   %r12,`-$FRAME+9*$SIZE_T`(%sp) |  | 
| 87         $PUSH   %r13,`-$FRAME+10*$SIZE_T`(%sp) |  | 
| 88         $PUSH   %r14,`-$FRAME+11*$SIZE_T`(%sp) |  | 
| 89         $PUSH   %r15,`-$FRAME+12*$SIZE_T`(%sp) |  | 
| 90         $PUSH   %r16,`-$FRAME+13*$SIZE_T`(%sp) |  | 
| 91         $PUSH   %r17,`-$FRAME+14*$SIZE_T`(%sp) |  | 
| 92         $PUSH   %r18,`-$FRAME+15*$SIZE_T`(%sp) |  | 
| 93 |  | 
| 94         blr     %r0,$tbl |  | 
| 95         ldi     3,$t0 |  | 
| 96 L\$enc_pic |  | 
| 97         andcm   $tbl,$t0,$tbl |  | 
| 98         ldo     L\$AES_Te-L\$enc_pic($tbl),$tbl |  | 
| 99 |  | 
| 100         and     $inp,$t0,$t0 |  | 
| 101         sub     $inp,$t0,$inp |  | 
| 102         ldw     0($inp),$s0 |  | 
| 103         ldw     4($inp),$s1 |  | 
| 104         ldw     8($inp),$s2 |  | 
| 105         comib,= 0,$t0,L\$enc_inp_aligned |  | 
| 106         ldw     12($inp),$s3 |  | 
| 107 |  | 
| 108         sh3addl $t0,%r0,$t0 |  | 
| 109         subi    32,$t0,$t0 |  | 
| 110         mtctl   $t0,%cr11 |  | 
| 111         ldw     16($inp),$t1 |  | 
| 112         vshd    $s0,$s1,$s0 |  | 
| 113         vshd    $s1,$s2,$s1 |  | 
| 114         vshd    $s2,$s3,$s2 |  | 
| 115         vshd    $s3,$t1,$s3 |  | 
| 116 |  | 
| 117 L\$enc_inp_aligned |  | 
| 118         bl      _parisc_AES_encrypt,%r31 |  | 
| 119         nop |  | 
| 120 |  | 
| 121         extru,<> $out,31,2,%r0 |  | 
| 122         b       L\$enc_out_aligned |  | 
| 123         nop |  | 
| 124 |  | 
| 125         _srm    $s0,24,$acc0 |  | 
| 126         _srm    $s0,16,$acc1 |  | 
| 127         stb     $acc0,0($out) |  | 
| 128         _srm    $s0,8,$acc2 |  | 
| 129         stb     $acc1,1($out) |  | 
| 130         _srm    $s1,24,$acc4 |  | 
| 131         stb     $acc2,2($out) |  | 
| 132         _srm    $s1,16,$acc5 |  | 
| 133         stb     $s0,3($out) |  | 
| 134         _srm    $s1,8,$acc6 |  | 
| 135         stb     $acc4,4($out) |  | 
| 136         _srm    $s2,24,$acc0 |  | 
| 137         stb     $acc5,5($out) |  | 
| 138         _srm    $s2,16,$acc1 |  | 
| 139         stb     $acc6,6($out) |  | 
| 140         _srm    $s2,8,$acc2 |  | 
| 141         stb     $s1,7($out) |  | 
| 142         _srm    $s3,24,$acc4 |  | 
| 143         stb     $acc0,8($out) |  | 
| 144         _srm    $s3,16,$acc5 |  | 
| 145         stb     $acc1,9($out) |  | 
| 146         _srm    $s3,8,$acc6 |  | 
| 147         stb     $acc2,10($out) |  | 
| 148         stb     $s2,11($out) |  | 
| 149         stb     $acc4,12($out) |  | 
| 150         stb     $acc5,13($out) |  | 
| 151         stb     $acc6,14($out) |  | 
| 152         b       L\$enc_done |  | 
| 153         stb     $s3,15($out) |  | 
| 154 |  | 
| 155 L\$enc_out_aligned |  | 
| 156         stw     $s0,0($out) |  | 
| 157         stw     $s1,4($out) |  | 
| 158         stw     $s2,8($out) |  | 
| 159         stw     $s3,12($out) |  | 
| 160 |  | 
| 161 L\$enc_done |  | 
| 162         $POP    `-$FRAME-$SAVED_RP`(%sp),%r2    ; standard epilogue |  | 
| 163         $POP    `-$FRAME+1*$SIZE_T`(%sp),%r4 |  | 
| 164         $POP    `-$FRAME+2*$SIZE_T`(%sp),%r5 |  | 
| 165         $POP    `-$FRAME+3*$SIZE_T`(%sp),%r6 |  | 
| 166         $POP    `-$FRAME+4*$SIZE_T`(%sp),%r7 |  | 
| 167         $POP    `-$FRAME+5*$SIZE_T`(%sp),%r8 |  | 
| 168         $POP    `-$FRAME+6*$SIZE_T`(%sp),%r9 |  | 
| 169         $POP    `-$FRAME+7*$SIZE_T`(%sp),%r10 |  | 
| 170         $POP    `-$FRAME+8*$SIZE_T`(%sp),%r11 |  | 
| 171         $POP    `-$FRAME+9*$SIZE_T`(%sp),%r12 |  | 
| 172         $POP    `-$FRAME+10*$SIZE_T`(%sp),%r13 |  | 
| 173         $POP    `-$FRAME+11*$SIZE_T`(%sp),%r14 |  | 
| 174         $POP    `-$FRAME+12*$SIZE_T`(%sp),%r15 |  | 
| 175         $POP    `-$FRAME+13*$SIZE_T`(%sp),%r16 |  | 
| 176         $POP    `-$FRAME+14*$SIZE_T`(%sp),%r17 |  | 
| 177         $POP    `-$FRAME+15*$SIZE_T`(%sp),%r18 |  | 
| 178         bv      (%r2) |  | 
| 179         .EXIT |  | 
| 180         $POPMB  -$FRAME(%sp),%r3 |  | 
| 181         .PROCEND |  | 
| 182 |  | 
| 183         .ALIGN  16 |  | 
| 184 _parisc_AES_encrypt |  | 
| 185         .PROC |  | 
| 186         .CALLINFO       MILLICODE |  | 
| 187         .ENTRY |  | 
| 188         ldw     240($key),$rounds |  | 
| 189         ldw     0($key),$t0 |  | 
| 190         ldw     4($key),$t1 |  | 
| 191         ldw     8($key),$t2 |  | 
| 192         _srm    $rounds,1,$rounds |  | 
| 193         xor     $t0,$s0,$s0 |  | 
| 194         ldw     12($key),$t3 |  | 
| 195         _srm    $s0,24,$acc0 |  | 
| 196         xor     $t1,$s1,$s1 |  | 
| 197         ldw     16($key),$t0 |  | 
| 198         _srm    $s1,16,$acc1 |  | 
| 199         xor     $t2,$s2,$s2 |  | 
| 200         ldw     20($key),$t1 |  | 
| 201         xor     $t3,$s3,$s3 |  | 
| 202         ldw     24($key),$t2 |  | 
| 203         ldw     28($key),$t3 |  | 
| 204 L\$enc_loop |  | 
| 205         _srm    $s2,8,$acc2 |  | 
| 206         ldwx,s  $acc0($tbl),$acc0 |  | 
| 207         _srm    $s3,0,$acc3 |  | 
| 208         ldwx,s  $acc1($tbl),$acc1 |  | 
| 209         _srm    $s1,24,$acc4 |  | 
| 210         ldwx,s  $acc2($tbl),$acc2 |  | 
| 211         _srm    $s2,16,$acc5 |  | 
| 212         ldwx,s  $acc3($tbl),$acc3 |  | 
| 213         _srm    $s3,8,$acc6 |  | 
| 214         ldwx,s  $acc4($tbl),$acc4 |  | 
| 215         _srm    $s0,0,$acc7 |  | 
| 216         ldwx,s  $acc5($tbl),$acc5 |  | 
| 217         _srm    $s2,24,$acc8 |  | 
| 218         ldwx,s  $acc6($tbl),$acc6 |  | 
| 219         _srm    $s3,16,$acc9 |  | 
| 220         ldwx,s  $acc7($tbl),$acc7 |  | 
| 221         _srm    $s0,8,$acc10 |  | 
| 222         ldwx,s  $acc8($tbl),$acc8 |  | 
| 223         _srm    $s1,0,$acc11 |  | 
| 224         ldwx,s  $acc9($tbl),$acc9 |  | 
| 225         _srm    $s3,24,$acc12 |  | 
| 226         ldwx,s  $acc10($tbl),$acc10 |  | 
| 227         _srm    $s0,16,$acc13 |  | 
| 228         ldwx,s  $acc11($tbl),$acc11 |  | 
| 229         _srm    $s1,8,$acc14 |  | 
| 230         ldwx,s  $acc12($tbl),$acc12 |  | 
| 231         _srm    $s2,0,$acc15 |  | 
| 232         ldwx,s  $acc13($tbl),$acc13 |  | 
| 233         ldwx,s  $acc14($tbl),$acc14 |  | 
| 234         ldwx,s  $acc15($tbl),$acc15 |  | 
| 235         addib,= -1,$rounds,L\$enc_last |  | 
| 236         ldo     32($key),$key |  | 
| 237 |  | 
| 238                 _ror    $acc1,8,$acc1 |  | 
| 239                 xor     $acc0,$t0,$t0 |  | 
| 240         ldw     0($key),$s0 |  | 
| 241                 _ror    $acc2,16,$acc2 |  | 
| 242                 xor     $acc1,$t0,$t0 |  | 
| 243         ldw     4($key),$s1 |  | 
| 244                 _ror    $acc3,24,$acc3 |  | 
| 245                 xor     $acc2,$t0,$t0 |  | 
| 246         ldw     8($key),$s2 |  | 
| 247                 _ror    $acc5,8,$acc5 |  | 
| 248                 xor     $acc3,$t0,$t0 |  | 
| 249         ldw     12($key),$s3 |  | 
| 250                 _ror    $acc6,16,$acc6 |  | 
| 251                 xor     $acc4,$t1,$t1 |  | 
| 252                 _ror    $acc7,24,$acc7 |  | 
| 253                 xor     $acc5,$t1,$t1 |  | 
| 254                 _ror    $acc9,8,$acc9 |  | 
| 255                 xor     $acc6,$t1,$t1 |  | 
| 256                 _ror    $acc10,16,$acc10 |  | 
| 257                 xor     $acc7,$t1,$t1 |  | 
| 258                 _ror    $acc11,24,$acc11 |  | 
| 259                 xor     $acc8,$t2,$t2 |  | 
| 260                 _ror    $acc13,8,$acc13 |  | 
| 261                 xor     $acc9,$t2,$t2 |  | 
| 262                 _ror    $acc14,16,$acc14 |  | 
| 263                 xor     $acc10,$t2,$t2 |  | 
| 264                 _ror    $acc15,24,$acc15 |  | 
| 265                 xor     $acc11,$t2,$t2 |  | 
| 266                 xor     $acc12,$acc14,$acc14 |  | 
| 267                 xor     $acc13,$t3,$t3 |  | 
| 268         _srm    $t0,24,$acc0 |  | 
| 269                 xor     $acc14,$t3,$t3 |  | 
| 270         _srm    $t1,16,$acc1 |  | 
| 271                 xor     $acc15,$t3,$t3 |  | 
| 272 |  | 
| 273         _srm    $t2,8,$acc2 |  | 
| 274         ldwx,s  $acc0($tbl),$acc0 |  | 
| 275         _srm    $t3,0,$acc3 |  | 
| 276         ldwx,s  $acc1($tbl),$acc1 |  | 
| 277         _srm    $t1,24,$acc4 |  | 
| 278         ldwx,s  $acc2($tbl),$acc2 |  | 
| 279         _srm    $t2,16,$acc5 |  | 
| 280         ldwx,s  $acc3($tbl),$acc3 |  | 
| 281         _srm    $t3,8,$acc6 |  | 
| 282         ldwx,s  $acc4($tbl),$acc4 |  | 
| 283         _srm    $t0,0,$acc7 |  | 
| 284         ldwx,s  $acc5($tbl),$acc5 |  | 
| 285         _srm    $t2,24,$acc8 |  | 
| 286         ldwx,s  $acc6($tbl),$acc6 |  | 
| 287         _srm    $t3,16,$acc9 |  | 
| 288         ldwx,s  $acc7($tbl),$acc7 |  | 
| 289         _srm    $t0,8,$acc10 |  | 
| 290         ldwx,s  $acc8($tbl),$acc8 |  | 
| 291         _srm    $t1,0,$acc11 |  | 
| 292         ldwx,s  $acc9($tbl),$acc9 |  | 
| 293         _srm    $t3,24,$acc12 |  | 
| 294         ldwx,s  $acc10($tbl),$acc10 |  | 
| 295         _srm    $t0,16,$acc13 |  | 
| 296         ldwx,s  $acc11($tbl),$acc11 |  | 
| 297         _srm    $t1,8,$acc14 |  | 
| 298         ldwx,s  $acc12($tbl),$acc12 |  | 
| 299         _srm    $t2,0,$acc15 |  | 
| 300         ldwx,s  $acc13($tbl),$acc13 |  | 
| 301                 _ror    $acc1,8,$acc1 |  | 
| 302         ldwx,s  $acc14($tbl),$acc14 |  | 
| 303 |  | 
| 304                 _ror    $acc2,16,$acc2 |  | 
| 305                 xor     $acc0,$s0,$s0 |  | 
| 306         ldwx,s  $acc15($tbl),$acc15 |  | 
| 307                 _ror    $acc3,24,$acc3 |  | 
| 308                 xor     $acc1,$s0,$s0 |  | 
| 309         ldw     16($key),$t0 |  | 
| 310                 _ror    $acc5,8,$acc5 |  | 
| 311                 xor     $acc2,$s0,$s0 |  | 
| 312         ldw     20($key),$t1 |  | 
| 313                 _ror    $acc6,16,$acc6 |  | 
| 314                 xor     $acc3,$s0,$s0 |  | 
| 315         ldw     24($key),$t2 |  | 
| 316                 _ror    $acc7,24,$acc7 |  | 
| 317                 xor     $acc4,$s1,$s1 |  | 
| 318         ldw     28($key),$t3 |  | 
| 319                 _ror    $acc9,8,$acc9 |  | 
| 320                 xor     $acc5,$s1,$s1 |  | 
| 321         ldw     1024+0($tbl),%r0                ; prefetch te4 |  | 
| 322                 _ror    $acc10,16,$acc10 |  | 
| 323                 xor     $acc6,$s1,$s1 |  | 
| 324         ldw     1024+32($tbl),%r0               ; prefetch te4 |  | 
| 325                 _ror    $acc11,24,$acc11 |  | 
| 326                 xor     $acc7,$s1,$s1 |  | 
| 327         ldw     1024+64($tbl),%r0               ; prefetch te4 |  | 
| 328                 _ror    $acc13,8,$acc13 |  | 
| 329                 xor     $acc8,$s2,$s2 |  | 
| 330         ldw     1024+96($tbl),%r0               ; prefetch te4 |  | 
| 331                 _ror    $acc14,16,$acc14 |  | 
| 332                 xor     $acc9,$s2,$s2 |  | 
| 333         ldw     1024+128($tbl),%r0              ; prefetch te4 |  | 
| 334                 _ror    $acc15,24,$acc15 |  | 
| 335                 xor     $acc10,$s2,$s2 |  | 
| 336         ldw     1024+160($tbl),%r0              ; prefetch te4 |  | 
| 337         _srm    $s0,24,$acc0 |  | 
| 338                 xor     $acc11,$s2,$s2 |  | 
| 339         ldw     1024+192($tbl),%r0              ; prefetch te4 |  | 
| 340                 xor     $acc12,$acc14,$acc14 |  | 
| 341                 xor     $acc13,$s3,$s3 |  | 
| 342         ldw     1024+224($tbl),%r0              ; prefetch te4 |  | 
| 343         _srm    $s1,16,$acc1 |  | 
| 344                 xor     $acc14,$s3,$s3 |  | 
| 345         b       L\$enc_loop |  | 
| 346                 xor     $acc15,$s3,$s3 |  | 
| 347 |  | 
| 348         .ALIGN  16 |  | 
| 349 L\$enc_last |  | 
| 350         ldo     1024($tbl),$rounds |  | 
| 351                 _ror    $acc1,8,$acc1 |  | 
| 352                 xor     $acc0,$t0,$t0 |  | 
| 353         ldw     0($key),$s0 |  | 
| 354                 _ror    $acc2,16,$acc2 |  | 
| 355                 xor     $acc1,$t0,$t0 |  | 
| 356         ldw     4($key),$s1 |  | 
| 357                 _ror    $acc3,24,$acc3 |  | 
| 358                 xor     $acc2,$t0,$t0 |  | 
| 359         ldw     8($key),$s2 |  | 
| 360                 _ror    $acc5,8,$acc5 |  | 
| 361                 xor     $acc3,$t0,$t0 |  | 
| 362         ldw     12($key),$s3 |  | 
| 363                 _ror    $acc6,16,$acc6 |  | 
| 364                 xor     $acc4,$t1,$t1 |  | 
| 365                 _ror    $acc7,24,$acc7 |  | 
| 366                 xor     $acc5,$t1,$t1 |  | 
| 367                 _ror    $acc9,8,$acc9 |  | 
| 368                 xor     $acc6,$t1,$t1 |  | 
| 369                 _ror    $acc10,16,$acc10 |  | 
| 370                 xor     $acc7,$t1,$t1 |  | 
| 371                 _ror    $acc11,24,$acc11 |  | 
| 372                 xor     $acc8,$t2,$t2 |  | 
| 373                 _ror    $acc13,8,$acc13 |  | 
| 374                 xor     $acc9,$t2,$t2 |  | 
| 375                 _ror    $acc14,16,$acc14 |  | 
| 376                 xor     $acc10,$t2,$t2 |  | 
| 377                 _ror    $acc15,24,$acc15 |  | 
| 378                 xor     $acc11,$t2,$t2 |  | 
| 379                 xor     $acc12,$acc14,$acc14 |  | 
| 380                 xor     $acc13,$t3,$t3 |  | 
| 381         _srm    $t0,24,$acc0 |  | 
| 382                 xor     $acc14,$t3,$t3 |  | 
| 383         _srm    $t1,16,$acc1 |  | 
| 384                 xor     $acc15,$t3,$t3 |  | 
| 385 |  | 
| 386         _srm    $t2,8,$acc2 |  | 
| 387         ldbx    $acc0($rounds),$acc0 |  | 
| 388         _srm    $t1,24,$acc4 |  | 
| 389         ldbx    $acc1($rounds),$acc1 |  | 
| 390         _srm    $t2,16,$acc5 |  | 
| 391         _srm    $t3,0,$acc3 |  | 
| 392         ldbx    $acc2($rounds),$acc2 |  | 
| 393         ldbx    $acc3($rounds),$acc3 |  | 
| 394         _srm    $t3,8,$acc6 |  | 
| 395         ldbx    $acc4($rounds),$acc4 |  | 
| 396         _srm    $t2,24,$acc8 |  | 
| 397         ldbx    $acc5($rounds),$acc5 |  | 
| 398         _srm    $t3,16,$acc9 |  | 
| 399         _srm    $t0,0,$acc7 |  | 
| 400         ldbx    $acc6($rounds),$acc6 |  | 
| 401         ldbx    $acc7($rounds),$acc7 |  | 
| 402         _srm    $t0,8,$acc10 |  | 
| 403         ldbx    $acc8($rounds),$acc8 |  | 
| 404         _srm    $t3,24,$acc12 |  | 
| 405         ldbx    $acc9($rounds),$acc9 |  | 
| 406         _srm    $t0,16,$acc13 |  | 
| 407         _srm    $t1,0,$acc11 |  | 
| 408         ldbx    $acc10($rounds),$acc10 |  | 
| 409         _srm    $t1,8,$acc14 |  | 
| 410         ldbx    $acc11($rounds),$acc11 |  | 
| 411         ldbx    $acc12($rounds),$acc12 |  | 
| 412         ldbx    $acc13($rounds),$acc13 |  | 
| 413         _srm    $t2,0,$acc15 |  | 
| 414         ldbx    $acc14($rounds),$acc14 |  | 
| 415 |  | 
| 416                 dep     $acc0,7,8,$acc3 |  | 
| 417         ldbx    $acc15($rounds),$acc15 |  | 
| 418                 dep     $acc4,7,8,$acc7 |  | 
| 419                 dep     $acc1,15,8,$acc3 |  | 
| 420                 dep     $acc5,15,8,$acc7 |  | 
| 421                 dep     $acc2,23,8,$acc3 |  | 
| 422                 dep     $acc6,23,8,$acc7 |  | 
| 423                 xor     $acc3,$s0,$s0 |  | 
| 424                 xor     $acc7,$s1,$s1 |  | 
| 425                 dep     $acc8,7,8,$acc11 |  | 
| 426                 dep     $acc12,7,8,$acc15 |  | 
| 427                 dep     $acc9,15,8,$acc11 |  | 
| 428                 dep     $acc13,15,8,$acc15 |  | 
| 429                 dep     $acc10,23,8,$acc11 |  | 
| 430                 dep     $acc14,23,8,$acc15 |  | 
| 431                 xor     $acc11,$s2,$s2 |  | 
| 432 |  | 
| 433         bv      (%r31) |  | 
| 434         .EXIT |  | 
| 435                 xor     $acc15,$s3,$s3 |  | 
| 436         .PROCEND |  | 
| 437 |  | 
| 438         .ALIGN  64 |  | 
| 439 L\$AES_Te |  | 
| 440         .WORD   0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d |  | 
| 441         .WORD   0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554 |  | 
| 442         .WORD   0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d |  | 
| 443         .WORD   0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a |  | 
| 444         .WORD   0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87 |  | 
| 445         .WORD   0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b |  | 
| 446         .WORD   0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea |  | 
| 447         .WORD   0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b |  | 
| 448         .WORD   0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a |  | 
| 449         .WORD   0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f |  | 
| 450         .WORD   0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108 |  | 
| 451         .WORD   0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f |  | 
| 452         .WORD   0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e |  | 
| 453         .WORD   0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5 |  | 
| 454         .WORD   0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d |  | 
| 455         .WORD   0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f |  | 
| 456         .WORD   0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e |  | 
| 457         .WORD   0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb |  | 
| 458         .WORD   0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce |  | 
| 459         .WORD   0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497 |  | 
| 460         .WORD   0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c |  | 
| 461         .WORD   0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed |  | 
| 462         .WORD   0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b |  | 
| 463         .WORD   0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a |  | 
| 464         .WORD   0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16 |  | 
| 465         .WORD   0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594 |  | 
| 466         .WORD   0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81 |  | 
| 467         .WORD   0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3 |  | 
| 468         .WORD   0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a |  | 
| 469         .WORD   0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504 |  | 
| 470         .WORD   0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163 |  | 
| 471         .WORD   0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d |  | 
| 472         .WORD   0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f |  | 
| 473         .WORD   0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739 |  | 
| 474         .WORD   0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47 |  | 
| 475         .WORD   0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395 |  | 
| 476         .WORD   0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f |  | 
| 477         .WORD   0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883 |  | 
| 478         .WORD   0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c |  | 
| 479         .WORD   0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76 |  | 
| 480         .WORD   0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e |  | 
| 481         .WORD   0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4 |  | 
| 482         .WORD   0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6 |  | 
| 483         .WORD   0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b |  | 
| 484         .WORD   0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7 |  | 
| 485         .WORD   0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0 |  | 
| 486         .WORD   0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25 |  | 
| 487         .WORD   0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818 |  | 
| 488         .WORD   0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72 |  | 
| 489         .WORD   0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651 |  | 
| 490         .WORD   0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21 |  | 
| 491         .WORD   0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85 |  | 
| 492         .WORD   0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa |  | 
| 493         .WORD   0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12 |  | 
| 494         .WORD   0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0 |  | 
| 495         .WORD   0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9 |  | 
| 496         .WORD   0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133 |  | 
| 497         .WORD   0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7 |  | 
| 498         .WORD   0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920 |  | 
| 499         .WORD   0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a |  | 
| 500         .WORD   0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17 |  | 
| 501         .WORD   0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8 |  | 
| 502         .WORD   0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11 |  | 
| 503         .WORD   0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a |  | 
| 504         .BYTE   0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5 |  | 
| 505         .BYTE   0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76 |  | 
| 506         .BYTE   0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0 |  | 
| 507         .BYTE   0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0 |  | 
| 508         .BYTE   0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc |  | 
| 509         .BYTE   0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15 |  | 
| 510         .BYTE   0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a |  | 
| 511         .BYTE   0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75 |  | 
| 512         .BYTE   0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0 |  | 
| 513         .BYTE   0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84 |  | 
| 514         .BYTE   0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b |  | 
| 515         .BYTE   0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf |  | 
| 516         .BYTE   0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85 |  | 
| 517         .BYTE   0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8 |  | 
| 518         .BYTE   0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5 |  | 
| 519         .BYTE   0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2 |  | 
| 520         .BYTE   0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17 |  | 
| 521         .BYTE   0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73 |  | 
| 522         .BYTE   0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88 |  | 
| 523         .BYTE   0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb |  | 
| 524         .BYTE   0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c |  | 
| 525         .BYTE   0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79 |  | 
| 526         .BYTE   0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9 |  | 
| 527         .BYTE   0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08 |  | 
| 528         .BYTE   0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6 |  | 
| 529         .BYTE   0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a |  | 
| 530         .BYTE   0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e |  | 
| 531         .BYTE   0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e |  | 
| 532         .BYTE   0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94 |  | 
| 533         .BYTE   0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf |  | 
| 534         .BYTE   0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68 |  | 
| 535         .BYTE   0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 |  | 
| 536 ___ |  | 
| 537 |  | 
| 538 $code.=<<___; |  | 
| 539         .EXPORT AES_decrypt,ENTRY,ARGW0=GR,ARGW1=GR,ARGW2=GR |  | 
| 540         .ALIGN  16 |  | 
| 541 AES_decrypt |  | 
| 542         .PROC |  | 
| 543         .CALLINFO       FRAME=`$FRAME-16*$SIZE_T`,NO_CALLS,SAVE_RP,ENTRY_GR=18 |  | 
| 544         .ENTRY |  | 
| 545         $PUSH   %r2,-$SAVED_RP(%sp)     ; standard prologue |  | 
| 546         $PUSHMA %r3,$FRAME(%sp) |  | 
| 547         $PUSH   %r4,`-$FRAME+1*$SIZE_T`(%sp) |  | 
| 548         $PUSH   %r5,`-$FRAME+2*$SIZE_T`(%sp) |  | 
| 549         $PUSH   %r6,`-$FRAME+3*$SIZE_T`(%sp) |  | 
| 550         $PUSH   %r7,`-$FRAME+4*$SIZE_T`(%sp) |  | 
| 551         $PUSH   %r8,`-$FRAME+5*$SIZE_T`(%sp) |  | 
| 552         $PUSH   %r9,`-$FRAME+6*$SIZE_T`(%sp) |  | 
| 553         $PUSH   %r10,`-$FRAME+7*$SIZE_T`(%sp) |  | 
| 554         $PUSH   %r11,`-$FRAME+8*$SIZE_T`(%sp) |  | 
| 555         $PUSH   %r12,`-$FRAME+9*$SIZE_T`(%sp) |  | 
| 556         $PUSH   %r13,`-$FRAME+10*$SIZE_T`(%sp) |  | 
| 557         $PUSH   %r14,`-$FRAME+11*$SIZE_T`(%sp) |  | 
| 558         $PUSH   %r15,`-$FRAME+12*$SIZE_T`(%sp) |  | 
| 559         $PUSH   %r16,`-$FRAME+13*$SIZE_T`(%sp) |  | 
| 560         $PUSH   %r17,`-$FRAME+14*$SIZE_T`(%sp) |  | 
| 561         $PUSH   %r18,`-$FRAME+15*$SIZE_T`(%sp) |  | 
| 562 |  | 
| 563         blr     %r0,$tbl |  | 
| 564         ldi     3,$t0 |  | 
| 565 L\$dec_pic |  | 
| 566         andcm   $tbl,$t0,$tbl |  | 
| 567         ldo     L\$AES_Td-L\$dec_pic($tbl),$tbl |  | 
| 568 |  | 
| 569         and     $inp,$t0,$t0 |  | 
| 570         sub     $inp,$t0,$inp |  | 
| 571         ldw     0($inp),$s0 |  | 
| 572         ldw     4($inp),$s1 |  | 
| 573         ldw     8($inp),$s2 |  | 
| 574         comib,= 0,$t0,L\$dec_inp_aligned |  | 
| 575         ldw     12($inp),$s3 |  | 
| 576 |  | 
| 577         sh3addl $t0,%r0,$t0 |  | 
| 578         subi    32,$t0,$t0 |  | 
| 579         mtctl   $t0,%cr11 |  | 
| 580         ldw     16($inp),$t1 |  | 
| 581         vshd    $s0,$s1,$s0 |  | 
| 582         vshd    $s1,$s2,$s1 |  | 
| 583         vshd    $s2,$s3,$s2 |  | 
| 584         vshd    $s3,$t1,$s3 |  | 
| 585 |  | 
| 586 L\$dec_inp_aligned |  | 
| 587         bl      _parisc_AES_decrypt,%r31 |  | 
| 588         nop |  | 
| 589 |  | 
| 590         extru,<> $out,31,2,%r0 |  | 
| 591         b       L\$dec_out_aligned |  | 
| 592         nop |  | 
| 593 |  | 
| 594         _srm    $s0,24,$acc0 |  | 
| 595         _srm    $s0,16,$acc1 |  | 
| 596         stb     $acc0,0($out) |  | 
| 597         _srm    $s0,8,$acc2 |  | 
| 598         stb     $acc1,1($out) |  | 
| 599         _srm    $s1,24,$acc4 |  | 
| 600         stb     $acc2,2($out) |  | 
| 601         _srm    $s1,16,$acc5 |  | 
| 602         stb     $s0,3($out) |  | 
| 603         _srm    $s1,8,$acc6 |  | 
| 604         stb     $acc4,4($out) |  | 
| 605         _srm    $s2,24,$acc0 |  | 
| 606         stb     $acc5,5($out) |  | 
| 607         _srm    $s2,16,$acc1 |  | 
| 608         stb     $acc6,6($out) |  | 
| 609         _srm    $s2,8,$acc2 |  | 
| 610         stb     $s1,7($out) |  | 
| 611         _srm    $s3,24,$acc4 |  | 
| 612         stb     $acc0,8($out) |  | 
| 613         _srm    $s3,16,$acc5 |  | 
| 614         stb     $acc1,9($out) |  | 
| 615         _srm    $s3,8,$acc6 |  | 
| 616         stb     $acc2,10($out) |  | 
| 617         stb     $s2,11($out) |  | 
| 618         stb     $acc4,12($out) |  | 
| 619         stb     $acc5,13($out) |  | 
| 620         stb     $acc6,14($out) |  | 
| 621         b       L\$dec_done |  | 
| 622         stb     $s3,15($out) |  | 
| 623 |  | 
| 624 L\$dec_out_aligned |  | 
| 625         stw     $s0,0($out) |  | 
| 626         stw     $s1,4($out) |  | 
| 627         stw     $s2,8($out) |  | 
| 628         stw     $s3,12($out) |  | 
| 629 |  | 
| 630 L\$dec_done |  | 
| 631         $POP    `-$FRAME-$SAVED_RP`(%sp),%r2    ; standard epilogue |  | 
| 632         $POP    `-$FRAME+1*$SIZE_T`(%sp),%r4 |  | 
| 633         $POP    `-$FRAME+2*$SIZE_T`(%sp),%r5 |  | 
| 634         $POP    `-$FRAME+3*$SIZE_T`(%sp),%r6 |  | 
| 635         $POP    `-$FRAME+4*$SIZE_T`(%sp),%r7 |  | 
| 636         $POP    `-$FRAME+5*$SIZE_T`(%sp),%r8 |  | 
| 637         $POP    `-$FRAME+6*$SIZE_T`(%sp),%r9 |  | 
| 638         $POP    `-$FRAME+7*$SIZE_T`(%sp),%r10 |  | 
| 639         $POP    `-$FRAME+8*$SIZE_T`(%sp),%r11 |  | 
| 640         $POP    `-$FRAME+9*$SIZE_T`(%sp),%r12 |  | 
| 641         $POP    `-$FRAME+10*$SIZE_T`(%sp),%r13 |  | 
| 642         $POP    `-$FRAME+11*$SIZE_T`(%sp),%r14 |  | 
| 643         $POP    `-$FRAME+12*$SIZE_T`(%sp),%r15 |  | 
| 644         $POP    `-$FRAME+13*$SIZE_T`(%sp),%r16 |  | 
| 645         $POP    `-$FRAME+14*$SIZE_T`(%sp),%r17 |  | 
| 646         $POP    `-$FRAME+15*$SIZE_T`(%sp),%r18 |  | 
| 647         bv      (%r2) |  | 
| 648         .EXIT |  | 
| 649         $POPMB  -$FRAME(%sp),%r3 |  | 
| 650         .PROCEND |  | 
| 651 |  | 
| 652         .ALIGN  16 |  | 
| 653 _parisc_AES_decrypt |  | 
| 654         .PROC |  | 
| 655         .CALLINFO       MILLICODE |  | 
| 656         .ENTRY |  | 
| 657         ldw     240($key),$rounds |  | 
| 658         ldw     0($key),$t0 |  | 
| 659         ldw     4($key),$t1 |  | 
| 660         ldw     8($key),$t2 |  | 
| 661         ldw     12($key),$t3 |  | 
| 662         _srm    $rounds,1,$rounds |  | 
| 663         xor     $t0,$s0,$s0 |  | 
| 664         ldw     16($key),$t0 |  | 
| 665         xor     $t1,$s1,$s1 |  | 
| 666         ldw     20($key),$t1 |  | 
| 667         _srm    $s0,24,$acc0 |  | 
| 668         xor     $t2,$s2,$s2 |  | 
| 669         ldw     24($key),$t2 |  | 
| 670         xor     $t3,$s3,$s3 |  | 
| 671         ldw     28($key),$t3 |  | 
| 672         _srm    $s3,16,$acc1 |  | 
| 673 L\$dec_loop |  | 
| 674         _srm    $s2,8,$acc2 |  | 
| 675         ldwx,s  $acc0($tbl),$acc0 |  | 
| 676         _srm    $s1,0,$acc3 |  | 
| 677         ldwx,s  $acc1($tbl),$acc1 |  | 
| 678         _srm    $s1,24,$acc4 |  | 
| 679         ldwx,s  $acc2($tbl),$acc2 |  | 
| 680         _srm    $s0,16,$acc5 |  | 
| 681         ldwx,s  $acc3($tbl),$acc3 |  | 
| 682         _srm    $s3,8,$acc6 |  | 
| 683         ldwx,s  $acc4($tbl),$acc4 |  | 
| 684         _srm    $s2,0,$acc7 |  | 
| 685         ldwx,s  $acc5($tbl),$acc5 |  | 
| 686         _srm    $s2,24,$acc8 |  | 
| 687         ldwx,s  $acc6($tbl),$acc6 |  | 
| 688         _srm    $s1,16,$acc9 |  | 
| 689         ldwx,s  $acc7($tbl),$acc7 |  | 
| 690         _srm    $s0,8,$acc10 |  | 
| 691         ldwx,s  $acc8($tbl),$acc8 |  | 
| 692         _srm    $s3,0,$acc11 |  | 
| 693         ldwx,s  $acc9($tbl),$acc9 |  | 
| 694         _srm    $s3,24,$acc12 |  | 
| 695         ldwx,s  $acc10($tbl),$acc10 |  | 
| 696         _srm    $s2,16,$acc13 |  | 
| 697         ldwx,s  $acc11($tbl),$acc11 |  | 
| 698         _srm    $s1,8,$acc14 |  | 
| 699         ldwx,s  $acc12($tbl),$acc12 |  | 
| 700         _srm    $s0,0,$acc15 |  | 
| 701         ldwx,s  $acc13($tbl),$acc13 |  | 
| 702         ldwx,s  $acc14($tbl),$acc14 |  | 
| 703         ldwx,s  $acc15($tbl),$acc15 |  | 
| 704         addib,= -1,$rounds,L\$dec_last |  | 
| 705         ldo     32($key),$key |  | 
| 706 |  | 
| 707                 _ror    $acc1,8,$acc1 |  | 
| 708                 xor     $acc0,$t0,$t0 |  | 
| 709         ldw     0($key),$s0 |  | 
| 710                 _ror    $acc2,16,$acc2 |  | 
| 711                 xor     $acc1,$t0,$t0 |  | 
| 712         ldw     4($key),$s1 |  | 
| 713                 _ror    $acc3,24,$acc3 |  | 
| 714                 xor     $acc2,$t0,$t0 |  | 
| 715         ldw     8($key),$s2 |  | 
| 716                 _ror    $acc5,8,$acc5 |  | 
| 717                 xor     $acc3,$t0,$t0 |  | 
| 718         ldw     12($key),$s3 |  | 
| 719                 _ror    $acc6,16,$acc6 |  | 
| 720                 xor     $acc4,$t1,$t1 |  | 
| 721                 _ror    $acc7,24,$acc7 |  | 
| 722                 xor     $acc5,$t1,$t1 |  | 
| 723                 _ror    $acc9,8,$acc9 |  | 
| 724                 xor     $acc6,$t1,$t1 |  | 
| 725                 _ror    $acc10,16,$acc10 |  | 
| 726                 xor     $acc7,$t1,$t1 |  | 
| 727                 _ror    $acc11,24,$acc11 |  | 
| 728                 xor     $acc8,$t2,$t2 |  | 
| 729                 _ror    $acc13,8,$acc13 |  | 
| 730                 xor     $acc9,$t2,$t2 |  | 
| 731                 _ror    $acc14,16,$acc14 |  | 
| 732                 xor     $acc10,$t2,$t2 |  | 
| 733                 _ror    $acc15,24,$acc15 |  | 
| 734                 xor     $acc11,$t2,$t2 |  | 
| 735                 xor     $acc12,$acc14,$acc14 |  | 
| 736                 xor     $acc13,$t3,$t3 |  | 
| 737         _srm    $t0,24,$acc0 |  | 
| 738                 xor     $acc14,$t3,$t3 |  | 
| 739                 xor     $acc15,$t3,$t3 |  | 
| 740         _srm    $t3,16,$acc1 |  | 
| 741 |  | 
| 742         _srm    $t2,8,$acc2 |  | 
| 743         ldwx,s  $acc0($tbl),$acc0 |  | 
| 744         _srm    $t1,0,$acc3 |  | 
| 745         ldwx,s  $acc1($tbl),$acc1 |  | 
| 746         _srm    $t1,24,$acc4 |  | 
| 747         ldwx,s  $acc2($tbl),$acc2 |  | 
| 748         _srm    $t0,16,$acc5 |  | 
| 749         ldwx,s  $acc3($tbl),$acc3 |  | 
| 750         _srm    $t3,8,$acc6 |  | 
| 751         ldwx,s  $acc4($tbl),$acc4 |  | 
| 752         _srm    $t2,0,$acc7 |  | 
| 753         ldwx,s  $acc5($tbl),$acc5 |  | 
| 754         _srm    $t2,24,$acc8 |  | 
| 755         ldwx,s  $acc6($tbl),$acc6 |  | 
| 756         _srm    $t1,16,$acc9 |  | 
| 757         ldwx,s  $acc7($tbl),$acc7 |  | 
| 758         _srm    $t0,8,$acc10 |  | 
| 759         ldwx,s  $acc8($tbl),$acc8 |  | 
| 760         _srm    $t3,0,$acc11 |  | 
| 761         ldwx,s  $acc9($tbl),$acc9 |  | 
| 762         _srm    $t3,24,$acc12 |  | 
| 763         ldwx,s  $acc10($tbl),$acc10 |  | 
| 764         _srm    $t2,16,$acc13 |  | 
| 765         ldwx,s  $acc11($tbl),$acc11 |  | 
| 766         _srm    $t1,8,$acc14 |  | 
| 767         ldwx,s  $acc12($tbl),$acc12 |  | 
| 768         _srm    $t0,0,$acc15 |  | 
| 769         ldwx,s  $acc13($tbl),$acc13 |  | 
| 770                 _ror    $acc1,8,$acc1 |  | 
| 771         ldwx,s  $acc14($tbl),$acc14 |  | 
| 772 |  | 
| 773                 _ror    $acc2,16,$acc2 |  | 
| 774                 xor     $acc0,$s0,$s0 |  | 
| 775         ldwx,s  $acc15($tbl),$acc15 |  | 
| 776                 _ror    $acc3,24,$acc3 |  | 
| 777                 xor     $acc1,$s0,$s0 |  | 
| 778         ldw     16($key),$t0 |  | 
| 779                 _ror    $acc5,8,$acc5 |  | 
| 780                 xor     $acc2,$s0,$s0 |  | 
| 781         ldw     20($key),$t1 |  | 
| 782                 _ror    $acc6,16,$acc6 |  | 
| 783                 xor     $acc3,$s0,$s0 |  | 
| 784         ldw     24($key),$t2 |  | 
| 785                 _ror    $acc7,24,$acc7 |  | 
| 786                 xor     $acc4,$s1,$s1 |  | 
| 787         ldw     28($key),$t3 |  | 
| 788                 _ror    $acc9,8,$acc9 |  | 
| 789                 xor     $acc5,$s1,$s1 |  | 
| 790         ldw     1024+0($tbl),%r0                ; prefetch td4 |  | 
| 791                 _ror    $acc10,16,$acc10 |  | 
| 792                 xor     $acc6,$s1,$s1 |  | 
| 793         ldw     1024+32($tbl),%r0               ; prefetch td4 |  | 
| 794                 _ror    $acc11,24,$acc11 |  | 
| 795                 xor     $acc7,$s1,$s1 |  | 
| 796         ldw     1024+64($tbl),%r0               ; prefetch td4 |  | 
| 797                 _ror    $acc13,8,$acc13 |  | 
| 798                 xor     $acc8,$s2,$s2 |  | 
| 799         ldw     1024+96($tbl),%r0               ; prefetch td4 |  | 
| 800                 _ror    $acc14,16,$acc14 |  | 
| 801                 xor     $acc9,$s2,$s2 |  | 
| 802         ldw     1024+128($tbl),%r0              ; prefetch td4 |  | 
| 803                 _ror    $acc15,24,$acc15 |  | 
| 804                 xor     $acc10,$s2,$s2 |  | 
| 805         ldw     1024+160($tbl),%r0              ; prefetch td4 |  | 
| 806         _srm    $s0,24,$acc0 |  | 
| 807                 xor     $acc11,$s2,$s2 |  | 
| 808         ldw     1024+192($tbl),%r0              ; prefetch td4 |  | 
| 809                 xor     $acc12,$acc14,$acc14 |  | 
| 810                 xor     $acc13,$s3,$s3 |  | 
| 811         ldw     1024+224($tbl),%r0              ; prefetch td4 |  | 
| 812                 xor     $acc14,$s3,$s3 |  | 
| 813                 xor     $acc15,$s3,$s3 |  | 
| 814         b       L\$dec_loop |  | 
| 815         _srm    $s3,16,$acc1 |  | 
| 816 |  | 
| 817         .ALIGN  16 |  | 
| 818 L\$dec_last |  | 
| 819         ldo     1024($tbl),$rounds |  | 
| 820                 _ror    $acc1,8,$acc1 |  | 
| 821                 xor     $acc0,$t0,$t0 |  | 
| 822         ldw     0($key),$s0 |  | 
| 823                 _ror    $acc2,16,$acc2 |  | 
| 824                 xor     $acc1,$t0,$t0 |  | 
| 825         ldw     4($key),$s1 |  | 
| 826                 _ror    $acc3,24,$acc3 |  | 
| 827                 xor     $acc2,$t0,$t0 |  | 
| 828         ldw     8($key),$s2 |  | 
| 829                 _ror    $acc5,8,$acc5 |  | 
| 830                 xor     $acc3,$t0,$t0 |  | 
| 831         ldw     12($key),$s3 |  | 
| 832                 _ror    $acc6,16,$acc6 |  | 
| 833                 xor     $acc4,$t1,$t1 |  | 
| 834                 _ror    $acc7,24,$acc7 |  | 
| 835                 xor     $acc5,$t1,$t1 |  | 
| 836                 _ror    $acc9,8,$acc9 |  | 
| 837                 xor     $acc6,$t1,$t1 |  | 
| 838                 _ror    $acc10,16,$acc10 |  | 
| 839                 xor     $acc7,$t1,$t1 |  | 
| 840                 _ror    $acc11,24,$acc11 |  | 
| 841                 xor     $acc8,$t2,$t2 |  | 
| 842                 _ror    $acc13,8,$acc13 |  | 
| 843                 xor     $acc9,$t2,$t2 |  | 
| 844                 _ror    $acc14,16,$acc14 |  | 
| 845                 xor     $acc10,$t2,$t2 |  | 
| 846                 _ror    $acc15,24,$acc15 |  | 
| 847                 xor     $acc11,$t2,$t2 |  | 
| 848                 xor     $acc12,$acc14,$acc14 |  | 
| 849                 xor     $acc13,$t3,$t3 |  | 
| 850         _srm    $t0,24,$acc0 |  | 
| 851                 xor     $acc14,$t3,$t3 |  | 
| 852                 xor     $acc15,$t3,$t3 |  | 
| 853         _srm    $t3,16,$acc1 |  | 
| 854 |  | 
| 855         _srm    $t2,8,$acc2 |  | 
| 856         ldbx    $acc0($rounds),$acc0 |  | 
| 857         _srm    $t1,24,$acc4 |  | 
| 858         ldbx    $acc1($rounds),$acc1 |  | 
| 859         _srm    $t0,16,$acc5 |  | 
| 860         _srm    $t1,0,$acc3 |  | 
| 861         ldbx    $acc2($rounds),$acc2 |  | 
| 862         ldbx    $acc3($rounds),$acc3 |  | 
| 863         _srm    $t3,8,$acc6 |  | 
| 864         ldbx    $acc4($rounds),$acc4 |  | 
| 865         _srm    $t2,24,$acc8 |  | 
| 866         ldbx    $acc5($rounds),$acc5 |  | 
| 867         _srm    $t1,16,$acc9 |  | 
| 868         _srm    $t2,0,$acc7 |  | 
| 869         ldbx    $acc6($rounds),$acc6 |  | 
| 870         ldbx    $acc7($rounds),$acc7 |  | 
| 871         _srm    $t0,8,$acc10 |  | 
| 872         ldbx    $acc8($rounds),$acc8 |  | 
| 873         _srm    $t3,24,$acc12 |  | 
| 874         ldbx    $acc9($rounds),$acc9 |  | 
| 875         _srm    $t2,16,$acc13 |  | 
| 876         _srm    $t3,0,$acc11 |  | 
| 877         ldbx    $acc10($rounds),$acc10 |  | 
| 878         _srm    $t1,8,$acc14 |  | 
| 879         ldbx    $acc11($rounds),$acc11 |  | 
| 880         ldbx    $acc12($rounds),$acc12 |  | 
| 881         ldbx    $acc13($rounds),$acc13 |  | 
| 882         _srm    $t0,0,$acc15 |  | 
| 883         ldbx    $acc14($rounds),$acc14 |  | 
| 884 |  | 
| 885                 dep     $acc0,7,8,$acc3 |  | 
| 886         ldbx    $acc15($rounds),$acc15 |  | 
| 887                 dep     $acc4,7,8,$acc7 |  | 
| 888                 dep     $acc1,15,8,$acc3 |  | 
| 889                 dep     $acc5,15,8,$acc7 |  | 
| 890                 dep     $acc2,23,8,$acc3 |  | 
| 891                 dep     $acc6,23,8,$acc7 |  | 
| 892                 xor     $acc3,$s0,$s0 |  | 
| 893                 xor     $acc7,$s1,$s1 |  | 
| 894                 dep     $acc8,7,8,$acc11 |  | 
| 895                 dep     $acc12,7,8,$acc15 |  | 
| 896                 dep     $acc9,15,8,$acc11 |  | 
| 897                 dep     $acc13,15,8,$acc15 |  | 
| 898                 dep     $acc10,23,8,$acc11 |  | 
| 899                 dep     $acc14,23,8,$acc15 |  | 
| 900                 xor     $acc11,$s2,$s2 |  | 
| 901 |  | 
| 902         bv      (%r31) |  | 
| 903         .EXIT |  | 
| 904                 xor     $acc15,$s3,$s3 |  | 
| 905         .PROCEND |  | 
| 906 |  | 
| 907         .ALIGN  64 |  | 
| 908 L\$AES_Td |  | 
| 909         .WORD   0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96 |  | 
| 910         .WORD   0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393 |  | 
| 911         .WORD   0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25 |  | 
| 912         .WORD   0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f |  | 
| 913         .WORD   0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1 |  | 
| 914         .WORD   0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6 |  | 
| 915         .WORD   0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da |  | 
| 916         .WORD   0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844 |  | 
| 917         .WORD   0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd |  | 
| 918         .WORD   0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4 |  | 
| 919         .WORD   0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45 |  | 
| 920         .WORD   0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94 |  | 
| 921         .WORD   0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7 |  | 
| 922         .WORD   0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a |  | 
| 923         .WORD   0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5 |  | 
| 924         .WORD   0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c |  | 
| 925         .WORD   0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1 |  | 
| 926         .WORD   0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a |  | 
| 927         .WORD   0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75 |  | 
| 928         .WORD   0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051 |  | 
| 929         .WORD   0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46 |  | 
| 930         .WORD   0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff |  | 
| 931         .WORD   0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77 |  | 
| 932         .WORD   0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb |  | 
| 933         .WORD   0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000 |  | 
| 934         .WORD   0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e |  | 
| 935         .WORD   0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927 |  | 
| 936         .WORD   0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a |  | 
| 937         .WORD   0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e |  | 
| 938         .WORD   0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16 |  | 
| 939         .WORD   0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d |  | 
| 940         .WORD   0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8 |  | 
| 941         .WORD   0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd |  | 
| 942         .WORD   0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34 |  | 
| 943         .WORD   0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163 |  | 
| 944         .WORD   0xd731dcca, 0x42638510, 0x13972240, 0x84c61120 |  | 
| 945         .WORD   0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d |  | 
| 946         .WORD   0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0 |  | 
| 947         .WORD   0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422 |  | 
| 948         .WORD   0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef |  | 
| 949         .WORD   0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36 |  | 
| 950         .WORD   0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4 |  | 
| 951         .WORD   0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662 |  | 
| 952         .WORD   0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5 |  | 
| 953         .WORD   0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3 |  | 
| 954         .WORD   0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b |  | 
| 955         .WORD   0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8 |  | 
| 956         .WORD   0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6 |  | 
| 957         .WORD   0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6 |  | 
| 958         .WORD   0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0 |  | 
| 959         .WORD   0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815 |  | 
| 960         .WORD   0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f |  | 
| 961         .WORD   0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df |  | 
| 962         .WORD   0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f |  | 
| 963         .WORD   0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e |  | 
| 964         .WORD   0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713 |  | 
| 965         .WORD   0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89 |  | 
| 966         .WORD   0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c |  | 
| 967         .WORD   0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf |  | 
| 968         .WORD   0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86 |  | 
| 969         .WORD   0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f |  | 
| 970         .WORD   0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541 |  | 
| 971         .WORD   0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190 |  | 
| 972         .WORD   0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742 |  | 
| 973         .BYTE   0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 |  | 
| 974         .BYTE   0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb |  | 
| 975         .BYTE   0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87 |  | 
| 976         .BYTE   0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb |  | 
| 977         .BYTE   0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d |  | 
| 978         .BYTE   0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e |  | 
| 979         .BYTE   0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2 |  | 
| 980         .BYTE   0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 |  | 
| 981         .BYTE   0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16 |  | 
| 982         .BYTE   0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 |  | 
| 983         .BYTE   0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda |  | 
| 984         .BYTE   0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 |  | 
| 985         .BYTE   0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a |  | 
| 986         .BYTE   0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 |  | 
| 987         .BYTE   0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02 |  | 
| 988         .BYTE   0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b |  | 
| 989         .BYTE   0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea |  | 
| 990         .BYTE   0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 |  | 
| 991         .BYTE   0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85 |  | 
| 992         .BYTE   0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e |  | 
| 993         .BYTE   0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89 |  | 
| 994         .BYTE   0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b |  | 
| 995         .BYTE   0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20 |  | 
| 996         .BYTE   0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 |  | 
| 997         .BYTE   0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 |  | 
| 998         .BYTE   0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f |  | 
| 999         .BYTE   0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d |  | 
| 1000         .BYTE   0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef |  | 
| 1001         .BYTE   0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 |  | 
| 1002         .BYTE   0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 |  | 
| 1003         .BYTE   0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 |  | 
| 1004         .BYTE   0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d |  | 
| 1005         .STRINGZ "AES for PA-RISC, CRYPTOGAMS by <appro\@openssl.org>" |  | 
| 1006 ___ |  | 
| 1007 |  | 
| 1008 foreach (split("\n",$code)) { |  | 
| 1009         s/\`([^\`]*)\`/eval $1/ge; |  | 
| 1010 |  | 
| 1011         # translate made up instructons: _ror, _srm |  | 
| 1012         s/_ror(\s+)(%r[0-9]+),/shd$1$2,$2,/                             or |  | 
| 1013 |  | 
| 1014         s/_srm(\s+%r[0-9]+),([0-9]+),/ |  | 
| 1015                 $SIZE_T==4 ? sprintf("extru%s,%d,8,",$1,31-$2) |  | 
| 1016                 :            sprintf("extrd,u%s,%d,8,",$1,63-$2)/e; |  | 
| 1017 |  | 
| 1018         s/,\*/,/ if ($SIZE_T==4); |  | 
| 1019         print $_,"\n"; |  | 
| 1020 } |  | 
| 1021 close STDOUT; |  | 
| OLD | NEW | 
|---|