Print this page
3882 remove xmod & friends

Split Close
Expand all
Collapse all
          --- old/usr/src/common/crypto/arcfour/amd64/arcfour-x86_64.pl
          +++ new/usr/src/common/crypto/arcfour/amd64/arcfour-x86_64.pl
↓ open down ↓ 143 lines elided ↑ open up ↑
 144  144  
 145  145  /* ARGSUSED */
 146  146  void
 147  147  arcfour_key_init(ARCFour_key *key, uchar_t *keyval, int keyvallen)
 148  148  {}
 149  149  
 150  150  #else
 151  151  #include <sys/asm_linkage.h>
 152  152  
 153  153  ENTRY_NP(arcfour_crypt_asm)
 154      -        /* EXPORT DELETE START */
 155      -
 156  154          or      $len,$len # If (len == 0) return
 157  155          jne     .Lentry
 158  156          ret
 159  157  .Lentry:
 160  158          push    %r12
 161  159          push    %r13
 162  160  
 163  161          / Set $dat to beginning of array, key->arr[0]
 164  162          add     \$8,$dat
 165  163          / Get key->j
↓ open down ↓ 70 lines elided ↑ open up ↑
 236  234          movl    ($dat,$TX[0],4),$TY#d
 237  235          movl    ($dat,$XX[0],4),$TX[0]#d
 238  236          xorb    ($inp),$TY#b
 239  237          inc     $inp
 240  238          movb    $TY#b,($out)
 241  239          inc     $out
 242  240          dec     $len
 243  241          jnz     .Lloop1
 244  242          jmp     .Lexit
 245  243  
 246      -        /* EXPORT DELETE END */
 247  244          ret
 248  245  SET_SIZE(arcfour_crypt_asm)
 249  246  ___
 250  247  
 251  248  
 252  249  #
 253  250  # Parameters
 254  251  #
 255  252  
 256  253  # OpenSSL:
↓ open down ↓ 10 lines elided ↑ open up ↑
 267  264  
 268  265  # Temporaries
 269  266  $idx="%r8";
 270  267  $ido="%r9";
 271  268  
 272  269  $code.=<<___;
 273  270          / int arcfour_crypt_on_intel(void);
 274  271  .extern arcfour_crypt_on_intel
 275  272  
 276  273  ENTRY_NP(arcfour_key_init)
 277      -        /* EXPORT DELETE START */
 278      -
 279  274          / Find out if we're running on Intel or something else (e.g., AMD64).
 280  275          / This sets %eax to 1 for Intel, otherwise 0.
 281  276          push    %rdi            / Save arg1
 282  277          push    %rsi            / Save arg2
 283  278          push    %rdx            / Save arg3
 284  279          call    arcfour_crypt_on_intel
 285  280          pop     %rdx            / Restore arg3
 286  281          pop     %rsi            / Restore arg2
 287  282          pop     %rdi            / Restore arg1
 288  283          / Save return value in key->flag (1=Intel, 0=AMD)
↓ open down ↓ 34 lines elided ↑ open up ↑
 323  318          mov     %r10d,($dat,$idx,4)
 324  319          mov     %r11d,($dat,$ido,4)
 325  320          add     \$1,$ido#b
 326  321          jnc     .Lw2ndloop
 327  322  
 328  323          / Exit code
 329  324          xor     %eax,%eax
 330  325          mov     %eax,-8($dat)
 331  326          mov     %eax,-4($dat)
 332  327  
 333      -        /* EXPORT DELETE END */
 334  328          ret
 335  329  SET_SIZE(arcfour_key_init)
 336  330  .asciz  "RC4 for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
 337  331  #endif /* !lint && !__lint */
 338  332  ___
 339  333  
 340  334  $code =~ s/#([bwd])/$1/gm;
 341  335  
 342  336  print $code;
 343  337  
 344  338  close STDOUT;
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX