The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/crypto/openssl/aarch64/sha1-armv8.S

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $FreeBSD$ */
    2 /* Do not modify. This file is auto-generated from sha1-armv8.pl. */
    3 #include "arm_arch.h"
    4 
    5 .text
    6 
    7 
    8 .hidden OPENSSL_armcap_P
    9 .globl  sha1_block_data_order
   10 .type   sha1_block_data_order,%function
   11 .align  6
   12 sha1_block_data_order:
   13 #ifdef  __ILP32__
   14         ldrsw   x16,.LOPENSSL_armcap_P
   15 #else
   16         ldr     x16,.LOPENSSL_armcap_P
   17 #endif
   18         adr     x17,.LOPENSSL_armcap_P
   19         add     x16,x16,x17
   20         ldr     w16,[x16]
   21         tst     w16,#ARMV8_SHA1
   22         b.ne    .Lv8_entry
   23 
   24         stp     x29,x30,[sp,#-96]!
   25         add     x29,sp,#0
   26         stp     x19,x20,[sp,#16]
   27         stp     x21,x22,[sp,#32]
   28         stp     x23,x24,[sp,#48]
   29         stp     x25,x26,[sp,#64]
   30         stp     x27,x28,[sp,#80]
   31 
   32         ldp     w20,w21,[x0]
   33         ldp     w22,w23,[x0,#8]
   34         ldr     w24,[x0,#16]
   35 
   36 .Loop:
   37         ldr     x3,[x1],#64
   38         movz    w28,#0x7999
   39         sub     x2,x2,#1
   40         movk    w28,#0x5a82,lsl#16
   41 #ifdef  __ARMEB__
   42         ror     x3,x3,#32
   43 #else
   44         rev32   x3,x3
   45 #endif
   46         add     w24,w24,w28             // warm it up
   47         add     w24,w24,w3
   48         lsr     x4,x3,#32
   49         ldr     x5,[x1,#-56]
   50         bic     w25,w23,w21
   51         and     w26,w22,w21
   52         ror     w27,w20,#27
   53         add     w23,w23,w28             // future e+=K
   54         orr     w25,w25,w26
   55         add     w24,w24,w27             // e+=rot(a,5)
   56         ror     w21,w21,#2
   57         add     w23,w23,w4      // future e+=X[i]
   58         add     w24,w24,w25             // e+=F(b,c,d)
   59 #ifdef  __ARMEB__
   60         ror     x5,x5,#32
   61 #else
   62         rev32   x5,x5
   63 #endif
   64         bic     w25,w22,w20
   65         and     w26,w21,w20
   66         ror     w27,w24,#27
   67         add     w22,w22,w28             // future e+=K
   68         orr     w25,w25,w26
   69         add     w23,w23,w27             // e+=rot(a,5)
   70         ror     w20,w20,#2
   71         add     w22,w22,w5      // future e+=X[i]
   72         add     w23,w23,w25             // e+=F(b,c,d)
   73         lsr     x6,x5,#32
   74         ldr     x7,[x1,#-48]
   75         bic     w25,w21,w24
   76         and     w26,w20,w24
   77         ror     w27,w23,#27
   78         add     w21,w21,w28             // future e+=K
   79         orr     w25,w25,w26
   80         add     w22,w22,w27             // e+=rot(a,5)
   81         ror     w24,w24,#2
   82         add     w21,w21,w6      // future e+=X[i]
   83         add     w22,w22,w25             // e+=F(b,c,d)
   84 #ifdef  __ARMEB__
   85         ror     x7,x7,#32
   86 #else
   87         rev32   x7,x7
   88 #endif
   89         bic     w25,w20,w23
   90         and     w26,w24,w23
   91         ror     w27,w22,#27
   92         add     w20,w20,w28             // future e+=K
   93         orr     w25,w25,w26
   94         add     w21,w21,w27             // e+=rot(a,5)
   95         ror     w23,w23,#2
   96         add     w20,w20,w7      // future e+=X[i]
   97         add     w21,w21,w25             // e+=F(b,c,d)
   98         lsr     x8,x7,#32
   99         ldr     x9,[x1,#-40]
  100         bic     w25,w24,w22
  101         and     w26,w23,w22
  102         ror     w27,w21,#27
  103         add     w24,w24,w28             // future e+=K
  104         orr     w25,w25,w26
  105         add     w20,w20,w27             // e+=rot(a,5)
  106         ror     w22,w22,#2
  107         add     w24,w24,w8      // future e+=X[i]
  108         add     w20,w20,w25             // e+=F(b,c,d)
  109 #ifdef  __ARMEB__
  110         ror     x9,x9,#32
  111 #else
  112         rev32   x9,x9
  113 #endif
  114         bic     w25,w23,w21
  115         and     w26,w22,w21
  116         ror     w27,w20,#27
  117         add     w23,w23,w28             // future e+=K
  118         orr     w25,w25,w26
  119         add     w24,w24,w27             // e+=rot(a,5)
  120         ror     w21,w21,#2
  121         add     w23,w23,w9      // future e+=X[i]
  122         add     w24,w24,w25             // e+=F(b,c,d)
  123         lsr     x10,x9,#32
  124         ldr     x11,[x1,#-32]
  125         bic     w25,w22,w20
  126         and     w26,w21,w20
  127         ror     w27,w24,#27
  128         add     w22,w22,w28             // future e+=K
  129         orr     w25,w25,w26
  130         add     w23,w23,w27             // e+=rot(a,5)
  131         ror     w20,w20,#2
  132         add     w22,w22,w10     // future e+=X[i]
  133         add     w23,w23,w25             // e+=F(b,c,d)
  134 #ifdef  __ARMEB__
  135         ror     x11,x11,#32
  136 #else
  137         rev32   x11,x11
  138 #endif
  139         bic     w25,w21,w24
  140         and     w26,w20,w24
  141         ror     w27,w23,#27
  142         add     w21,w21,w28             // future e+=K
  143         orr     w25,w25,w26
  144         add     w22,w22,w27             // e+=rot(a,5)
  145         ror     w24,w24,#2
  146         add     w21,w21,w11     // future e+=X[i]
  147         add     w22,w22,w25             // e+=F(b,c,d)
  148         lsr     x12,x11,#32
  149         ldr     x13,[x1,#-24]
  150         bic     w25,w20,w23
  151         and     w26,w24,w23
  152         ror     w27,w22,#27
  153         add     w20,w20,w28             // future e+=K
  154         orr     w25,w25,w26
  155         add     w21,w21,w27             // e+=rot(a,5)
  156         ror     w23,w23,#2
  157         add     w20,w20,w12     // future e+=X[i]
  158         add     w21,w21,w25             // e+=F(b,c,d)
  159 #ifdef  __ARMEB__
  160         ror     x13,x13,#32
  161 #else
  162         rev32   x13,x13
  163 #endif
  164         bic     w25,w24,w22
  165         and     w26,w23,w22
  166         ror     w27,w21,#27
  167         add     w24,w24,w28             // future e+=K
  168         orr     w25,w25,w26
  169         add     w20,w20,w27             // e+=rot(a,5)
  170         ror     w22,w22,#2
  171         add     w24,w24,w13     // future e+=X[i]
  172         add     w20,w20,w25             // e+=F(b,c,d)
  173         lsr     x14,x13,#32
  174         ldr     x15,[x1,#-16]
  175         bic     w25,w23,w21
  176         and     w26,w22,w21
  177         ror     w27,w20,#27
  178         add     w23,w23,w28             // future e+=K
  179         orr     w25,w25,w26
  180         add     w24,w24,w27             // e+=rot(a,5)
  181         ror     w21,w21,#2
  182         add     w23,w23,w14     // future e+=X[i]
  183         add     w24,w24,w25             // e+=F(b,c,d)
  184 #ifdef  __ARMEB__
  185         ror     x15,x15,#32
  186 #else
  187         rev32   x15,x15
  188 #endif
  189         bic     w25,w22,w20
  190         and     w26,w21,w20
  191         ror     w27,w24,#27
  192         add     w22,w22,w28             // future e+=K
  193         orr     w25,w25,w26
  194         add     w23,w23,w27             // e+=rot(a,5)
  195         ror     w20,w20,#2
  196         add     w22,w22,w15     // future e+=X[i]
  197         add     w23,w23,w25             // e+=F(b,c,d)
  198         lsr     x16,x15,#32
  199         ldr     x17,[x1,#-8]
  200         bic     w25,w21,w24
  201         and     w26,w20,w24
  202         ror     w27,w23,#27
  203         add     w21,w21,w28             // future e+=K
  204         orr     w25,w25,w26
  205         add     w22,w22,w27             // e+=rot(a,5)
  206         ror     w24,w24,#2
  207         add     w21,w21,w16     // future e+=X[i]
  208         add     w22,w22,w25             // e+=F(b,c,d)
  209 #ifdef  __ARMEB__
  210         ror     x17,x17,#32
  211 #else
  212         rev32   x17,x17
  213 #endif
  214         bic     w25,w20,w23
  215         and     w26,w24,w23
  216         ror     w27,w22,#27
  217         add     w20,w20,w28             // future e+=K
  218         orr     w25,w25,w26
  219         add     w21,w21,w27             // e+=rot(a,5)
  220         ror     w23,w23,#2
  221         add     w20,w20,w17     // future e+=X[i]
  222         add     w21,w21,w25             // e+=F(b,c,d)
  223         lsr     x19,x17,#32
  224         eor     w3,w3,w5
  225         bic     w25,w24,w22
  226         and     w26,w23,w22
  227         ror     w27,w21,#27
  228         eor     w3,w3,w11
  229         add     w24,w24,w28             // future e+=K
  230         orr     w25,w25,w26
  231         add     w20,w20,w27             // e+=rot(a,5)
  232         eor     w3,w3,w16
  233         ror     w22,w22,#2
  234         add     w24,w24,w19     // future e+=X[i]
  235         add     w20,w20,w25             // e+=F(b,c,d)
  236         ror     w3,w3,#31
  237         eor     w4,w4,w6
  238         bic     w25,w23,w21
  239         and     w26,w22,w21
  240         ror     w27,w20,#27
  241         eor     w4,w4,w12
  242         add     w23,w23,w28             // future e+=K
  243         orr     w25,w25,w26
  244         add     w24,w24,w27             // e+=rot(a,5)
  245         eor     w4,w4,w17
  246         ror     w21,w21,#2
  247         add     w23,w23,w3      // future e+=X[i]
  248         add     w24,w24,w25             // e+=F(b,c,d)
  249         ror     w4,w4,#31
  250         eor     w5,w5,w7
  251         bic     w25,w22,w20
  252         and     w26,w21,w20
  253         ror     w27,w24,#27
  254         eor     w5,w5,w13
  255         add     w22,w22,w28             // future e+=K
  256         orr     w25,w25,w26
  257         add     w23,w23,w27             // e+=rot(a,5)
  258         eor     w5,w5,w19
  259         ror     w20,w20,#2
  260         add     w22,w22,w4      // future e+=X[i]
  261         add     w23,w23,w25             // e+=F(b,c,d)
  262         ror     w5,w5,#31
  263         eor     w6,w6,w8
  264         bic     w25,w21,w24
  265         and     w26,w20,w24
  266         ror     w27,w23,#27
  267         eor     w6,w6,w14
  268         add     w21,w21,w28             // future e+=K
  269         orr     w25,w25,w26
  270         add     w22,w22,w27             // e+=rot(a,5)
  271         eor     w6,w6,w3
  272         ror     w24,w24,#2
  273         add     w21,w21,w5      // future e+=X[i]
  274         add     w22,w22,w25             // e+=F(b,c,d)
  275         ror     w6,w6,#31
  276         eor     w7,w7,w9
  277         bic     w25,w20,w23
  278         and     w26,w24,w23
  279         ror     w27,w22,#27
  280         eor     w7,w7,w15
  281         add     w20,w20,w28             // future e+=K
  282         orr     w25,w25,w26
  283         add     w21,w21,w27             // e+=rot(a,5)
  284         eor     w7,w7,w4
  285         ror     w23,w23,#2
  286         add     w20,w20,w6      // future e+=X[i]
  287         add     w21,w21,w25             // e+=F(b,c,d)
  288         ror     w7,w7,#31
  289         movz    w28,#0xeba1
  290         movk    w28,#0x6ed9,lsl#16
  291         eor     w8,w8,w10
  292         bic     w25,w24,w22
  293         and     w26,w23,w22
  294         ror     w27,w21,#27
  295         eor     w8,w8,w16
  296         add     w24,w24,w28             // future e+=K
  297         orr     w25,w25,w26
  298         add     w20,w20,w27             // e+=rot(a,5)
  299         eor     w8,w8,w5
  300         ror     w22,w22,#2
  301         add     w24,w24,w7      // future e+=X[i]
  302         add     w20,w20,w25             // e+=F(b,c,d)
  303         ror     w8,w8,#31
  304         eor     w9,w9,w11
  305         eor     w25,w23,w21
  306         ror     w27,w20,#27
  307         add     w23,w23,w28             // future e+=K
  308         eor     w9,w9,w17
  309         eor     w25,w25,w22
  310         add     w24,w24,w27             // e+=rot(a,5)
  311         ror     w21,w21,#2
  312         eor     w9,w9,w6
  313         add     w23,w23,w8      // future e+=X[i]
  314         add     w24,w24,w25             // e+=F(b,c,d)
  315         ror     w9,w9,#31
  316         eor     w10,w10,w12
  317         eor     w25,w22,w20
  318         ror     w27,w24,#27
  319         add     w22,w22,w28             // future e+=K
  320         eor     w10,w10,w19
  321         eor     w25,w25,w21
  322         add     w23,w23,w27             // e+=rot(a,5)
  323         ror     w20,w20,#2
  324         eor     w10,w10,w7
  325         add     w22,w22,w9      // future e+=X[i]
  326         add     w23,w23,w25             // e+=F(b,c,d)
  327         ror     w10,w10,#31
  328         eor     w11,w11,w13
  329         eor     w25,w21,w24
  330         ror     w27,w23,#27
  331         add     w21,w21,w28             // future e+=K
  332         eor     w11,w11,w3
  333         eor     w25,w25,w20
  334         add     w22,w22,w27             // e+=rot(a,5)
  335         ror     w24,w24,#2
  336         eor     w11,w11,w8
  337         add     w21,w21,w10     // future e+=X[i]
  338         add     w22,w22,w25             // e+=F(b,c,d)
  339         ror     w11,w11,#31
  340         eor     w12,w12,w14
  341         eor     w25,w20,w23
  342         ror     w27,w22,#27
  343         add     w20,w20,w28             // future e+=K
  344         eor     w12,w12,w4
  345         eor     w25,w25,w24
  346         add     w21,w21,w27             // e+=rot(a,5)
  347         ror     w23,w23,#2
  348         eor     w12,w12,w9
  349         add     w20,w20,w11     // future e+=X[i]
  350         add     w21,w21,w25             // e+=F(b,c,d)
  351         ror     w12,w12,#31
  352         eor     w13,w13,w15
  353         eor     w25,w24,w22
  354         ror     w27,w21,#27
  355         add     w24,w24,w28             // future e+=K
  356         eor     w13,w13,w5
  357         eor     w25,w25,w23
  358         add     w20,w20,w27             // e+=rot(a,5)
  359         ror     w22,w22,#2
  360         eor     w13,w13,w10
  361         add     w24,w24,w12     // future e+=X[i]
  362         add     w20,w20,w25             // e+=F(b,c,d)
  363         ror     w13,w13,#31
  364         eor     w14,w14,w16
  365         eor     w25,w23,w21
  366         ror     w27,w20,#27
  367         add     w23,w23,w28             // future e+=K
  368         eor     w14,w14,w6
  369         eor     w25,w25,w22
  370         add     w24,w24,w27             // e+=rot(a,5)
  371         ror     w21,w21,#2
  372         eor     w14,w14,w11
  373         add     w23,w23,w13     // future e+=X[i]
  374         add     w24,w24,w25             // e+=F(b,c,d)
  375         ror     w14,w14,#31
  376         eor     w15,w15,w17
  377         eor     w25,w22,w20
  378         ror     w27,w24,#27
  379         add     w22,w22,w28             // future e+=K
  380         eor     w15,w15,w7
  381         eor     w25,w25,w21
  382         add     w23,w23,w27             // e+=rot(a,5)
  383         ror     w20,w20,#2
  384         eor     w15,w15,w12
  385         add     w22,w22,w14     // future e+=X[i]
  386         add     w23,w23,w25             // e+=F(b,c,d)
  387         ror     w15,w15,#31
  388         eor     w16,w16,w19
  389         eor     w25,w21,w24
  390         ror     w27,w23,#27
  391         add     w21,w21,w28             // future e+=K
  392         eor     w16,w16,w8
  393         eor     w25,w25,w20
  394         add     w22,w22,w27             // e+=rot(a,5)
  395         ror     w24,w24,#2
  396         eor     w16,w16,w13
  397         add     w21,w21,w15     // future e+=X[i]
  398         add     w22,w22,w25             // e+=F(b,c,d)
  399         ror     w16,w16,#31
  400         eor     w17,w17,w3
  401         eor     w25,w20,w23
  402         ror     w27,w22,#27
  403         add     w20,w20,w28             // future e+=K
  404         eor     w17,w17,w9
  405         eor     w25,w25,w24
  406         add     w21,w21,w27             // e+=rot(a,5)
  407         ror     w23,w23,#2
  408         eor     w17,w17,w14
  409         add     w20,w20,w16     // future e+=X[i]
  410         add     w21,w21,w25             // e+=F(b,c,d)
  411         ror     w17,w17,#31
  412         eor     w19,w19,w4
  413         eor     w25,w24,w22
  414         ror     w27,w21,#27
  415         add     w24,w24,w28             // future e+=K
  416         eor     w19,w19,w10
  417         eor     w25,w25,w23
  418         add     w20,w20,w27             // e+=rot(a,5)
  419         ror     w22,w22,#2
  420         eor     w19,w19,w15
  421         add     w24,w24,w17     // future e+=X[i]
  422         add     w20,w20,w25             // e+=F(b,c,d)
  423         ror     w19,w19,#31
  424         eor     w3,w3,w5
  425         eor     w25,w23,w21
  426         ror     w27,w20,#27
  427         add     w23,w23,w28             // future e+=K
  428         eor     w3,w3,w11
  429         eor     w25,w25,w22
  430         add     w24,w24,w27             // e+=rot(a,5)
  431         ror     w21,w21,#2
  432         eor     w3,w3,w16
  433         add     w23,w23,w19     // future e+=X[i]
  434         add     w24,w24,w25             // e+=F(b,c,d)
  435         ror     w3,w3,#31
  436         eor     w4,w4,w6
  437         eor     w25,w22,w20
  438         ror     w27,w24,#27
  439         add     w22,w22,w28             // future e+=K
  440         eor     w4,w4,w12
  441         eor     w25,w25,w21
  442         add     w23,w23,w27             // e+=rot(a,5)
  443         ror     w20,w20,#2
  444         eor     w4,w4,w17
  445         add     w22,w22,w3      // future e+=X[i]
  446         add     w23,w23,w25             // e+=F(b,c,d)
  447         ror     w4,w4,#31
  448         eor     w5,w5,w7
  449         eor     w25,w21,w24
  450         ror     w27,w23,#27
  451         add     w21,w21,w28             // future e+=K
  452         eor     w5,w5,w13
  453         eor     w25,w25,w20
  454         add     w22,w22,w27             // e+=rot(a,5)
  455         ror     w24,w24,#2
  456         eor     w5,w5,w19
  457         add     w21,w21,w4      // future e+=X[i]
  458         add     w22,w22,w25             // e+=F(b,c,d)
  459         ror     w5,w5,#31
  460         eor     w6,w6,w8
  461         eor     w25,w20,w23
  462         ror     w27,w22,#27
  463         add     w20,w20,w28             // future e+=K
  464         eor     w6,w6,w14
  465         eor     w25,w25,w24
  466         add     w21,w21,w27             // e+=rot(a,5)
  467         ror     w23,w23,#2
  468         eor     w6,w6,w3
  469         add     w20,w20,w5      // future e+=X[i]
  470         add     w21,w21,w25             // e+=F(b,c,d)
  471         ror     w6,w6,#31
  472         eor     w7,w7,w9
  473         eor     w25,w24,w22
  474         ror     w27,w21,#27
  475         add     w24,w24,w28             // future e+=K
  476         eor     w7,w7,w15
  477         eor     w25,w25,w23
  478         add     w20,w20,w27             // e+=rot(a,5)
  479         ror     w22,w22,#2
  480         eor     w7,w7,w4
  481         add     w24,w24,w6      // future e+=X[i]
  482         add     w20,w20,w25             // e+=F(b,c,d)
  483         ror     w7,w7,#31
  484         eor     w8,w8,w10
  485         eor     w25,w23,w21
  486         ror     w27,w20,#27
  487         add     w23,w23,w28             // future e+=K
  488         eor     w8,w8,w16
  489         eor     w25,w25,w22
  490         add     w24,w24,w27             // e+=rot(a,5)
  491         ror     w21,w21,#2
  492         eor     w8,w8,w5
  493         add     w23,w23,w7      // future e+=X[i]
  494         add     w24,w24,w25             // e+=F(b,c,d)
  495         ror     w8,w8,#31
  496         eor     w9,w9,w11
  497         eor     w25,w22,w20
  498         ror     w27,w24,#27
  499         add     w22,w22,w28             // future e+=K
  500         eor     w9,w9,w17
  501         eor     w25,w25,w21
  502         add     w23,w23,w27             // e+=rot(a,5)
  503         ror     w20,w20,#2
  504         eor     w9,w9,w6
  505         add     w22,w22,w8      // future e+=X[i]
  506         add     w23,w23,w25             // e+=F(b,c,d)
  507         ror     w9,w9,#31
  508         eor     w10,w10,w12
  509         eor     w25,w21,w24
  510         ror     w27,w23,#27
  511         add     w21,w21,w28             // future e+=K
  512         eor     w10,w10,w19
  513         eor     w25,w25,w20
  514         add     w22,w22,w27             // e+=rot(a,5)
  515         ror     w24,w24,#2
  516         eor     w10,w10,w7
  517         add     w21,w21,w9      // future e+=X[i]
  518         add     w22,w22,w25             // e+=F(b,c,d)
  519         ror     w10,w10,#31
  520         eor     w11,w11,w13
  521         eor     w25,w20,w23
  522         ror     w27,w22,#27
  523         add     w20,w20,w28             // future e+=K
  524         eor     w11,w11,w3
  525         eor     w25,w25,w24
  526         add     w21,w21,w27             // e+=rot(a,5)
  527         ror     w23,w23,#2
  528         eor     w11,w11,w8
  529         add     w20,w20,w10     // future e+=X[i]
  530         add     w21,w21,w25             // e+=F(b,c,d)
  531         ror     w11,w11,#31
  532         movz    w28,#0xbcdc
  533         movk    w28,#0x8f1b,lsl#16
  534         eor     w12,w12,w14
  535         eor     w25,w24,w22
  536         ror     w27,w21,#27
  537         add     w24,w24,w28             // future e+=K
  538         eor     w12,w12,w4
  539         eor     w25,w25,w23
  540         add     w20,w20,w27             // e+=rot(a,5)
  541         ror     w22,w22,#2
  542         eor     w12,w12,w9
  543         add     w24,w24,w11     // future e+=X[i]
  544         add     w20,w20,w25             // e+=F(b,c,d)
  545         ror     w12,w12,#31
  546         orr     w25,w21,w22
  547         and     w26,w21,w22
  548         eor     w13,w13,w15
  549         ror     w27,w20,#27
  550         and     w25,w25,w23
  551         add     w23,w23,w28             // future e+=K
  552         eor     w13,w13,w5
  553         add     w24,w24,w27             // e+=rot(a,5)
  554         orr     w25,w25,w26
  555         ror     w21,w21,#2
  556         eor     w13,w13,w10
  557         add     w23,w23,w12     // future e+=X[i]
  558         add     w24,w24,w25             // e+=F(b,c,d)
  559         ror     w13,w13,#31
  560         orr     w25,w20,w21
  561         and     w26,w20,w21
  562         eor     w14,w14,w16
  563         ror     w27,w24,#27
  564         and     w25,w25,w22
  565         add     w22,w22,w28             // future e+=K
  566         eor     w14,w14,w6
  567         add     w23,w23,w27             // e+=rot(a,5)
  568         orr     w25,w25,w26
  569         ror     w20,w20,#2
  570         eor     w14,w14,w11
  571         add     w22,w22,w13     // future e+=X[i]
  572         add     w23,w23,w25             // e+=F(b,c,d)
  573         ror     w14,w14,#31
  574         orr     w25,w24,w20
  575         and     w26,w24,w20
  576         eor     w15,w15,w17
  577         ror     w27,w23,#27
  578         and     w25,w25,w21
  579         add     w21,w21,w28             // future e+=K
  580         eor     w15,w15,w7
  581         add     w22,w22,w27             // e+=rot(a,5)
  582         orr     w25,w25,w26
  583         ror     w24,w24,#2
  584         eor     w15,w15,w12
  585         add     w21,w21,w14     // future e+=X[i]
  586         add     w22,w22,w25             // e+=F(b,c,d)
  587         ror     w15,w15,#31
  588         orr     w25,w23,w24
  589         and     w26,w23,w24
  590         eor     w16,w16,w19
  591         ror     w27,w22,#27
  592         and     w25,w25,w20
  593         add     w20,w20,w28             // future e+=K
  594         eor     w16,w16,w8
  595         add     w21,w21,w27             // e+=rot(a,5)
  596         orr     w25,w25,w26
  597         ror     w23,w23,#2
  598         eor     w16,w16,w13
  599         add     w20,w20,w15     // future e+=X[i]
  600         add     w21,w21,w25             // e+=F(b,c,d)
  601         ror     w16,w16,#31
  602         orr     w25,w22,w23
  603         and     w26,w22,w23
  604         eor     w17,w17,w3
  605         ror     w27,w21,#27
  606         and     w25,w25,w24
  607         add     w24,w24,w28             // future e+=K
  608         eor     w17,w17,w9
  609         add     w20,w20,w27             // e+=rot(a,5)
  610         orr     w25,w25,w26
  611         ror     w22,w22,#2
  612         eor     w17,w17,w14
  613         add     w24,w24,w16     // future e+=X[i]
  614         add     w20,w20,w25             // e+=F(b,c,d)
  615         ror     w17,w17,#31
  616         orr     w25,w21,w22
  617         and     w26,w21,w22
  618         eor     w19,w19,w4
  619         ror     w27,w20,#27
  620         and     w25,w25,w23
  621         add     w23,w23,w28             // future e+=K
  622         eor     w19,w19,w10
  623         add     w24,w24,w27             // e+=rot(a,5)
  624         orr     w25,w25,w26
  625         ror     w21,w21,#2
  626         eor     w19,w19,w15
  627         add     w23,w23,w17     // future e+=X[i]
  628         add     w24,w24,w25             // e+=F(b,c,d)
  629         ror     w19,w19,#31
  630         orr     w25,w20,w21
  631         and     w26,w20,w21
  632         eor     w3,w3,w5
  633         ror     w27,w24,#27
  634         and     w25,w25,w22
  635         add     w22,w22,w28             // future e+=K
  636         eor     w3,w3,w11
  637         add     w23,w23,w27             // e+=rot(a,5)
  638         orr     w25,w25,w26
  639         ror     w20,w20,#2
  640         eor     w3,w3,w16
  641         add     w22,w22,w19     // future e+=X[i]
  642         add     w23,w23,w25             // e+=F(b,c,d)
  643         ror     w3,w3,#31
  644         orr     w25,w24,w20
  645         and     w26,w24,w20
  646         eor     w4,w4,w6
  647         ror     w27,w23,#27
  648         and     w25,w25,w21
  649         add     w21,w21,w28             // future e+=K
  650         eor     w4,w4,w12
  651         add     w22,w22,w27             // e+=rot(a,5)
  652         orr     w25,w25,w26
  653         ror     w24,w24,#2
  654         eor     w4,w4,w17
  655         add     w21,w21,w3      // future e+=X[i]
  656         add     w22,w22,w25             // e+=F(b,c,d)
  657         ror     w4,w4,#31
  658         orr     w25,w23,w24
  659         and     w26,w23,w24
  660         eor     w5,w5,w7
  661         ror     w27,w22,#27
  662         and     w25,w25,w20
  663         add     w20,w20,w28             // future e+=K
  664         eor     w5,w5,w13
  665         add     w21,w21,w27             // e+=rot(a,5)
  666         orr     w25,w25,w26
  667         ror     w23,w23,#2
  668         eor     w5,w5,w19
  669         add     w20,w20,w4      // future e+=X[i]
  670         add     w21,w21,w25             // e+=F(b,c,d)
  671         ror     w5,w5,#31
  672         orr     w25,w22,w23
  673         and     w26,w22,w23
  674         eor     w6,w6,w8
  675         ror     w27,w21,#27
  676         and     w25,w25,w24
  677         add     w24,w24,w28             // future e+=K
  678         eor     w6,w6,w14
  679         add     w20,w20,w27             // e+=rot(a,5)
  680         orr     w25,w25,w26
  681         ror     w22,w22,#2
  682         eor     w6,w6,w3
  683         add     w24,w24,w5      // future e+=X[i]
  684         add     w20,w20,w25             // e+=F(b,c,d)
  685         ror     w6,w6,#31
  686         orr     w25,w21,w22
  687         and     w26,w21,w22
  688         eor     w7,w7,w9
  689         ror     w27,w20,#27
  690         and     w25,w25,w23
  691         add     w23,w23,w28             // future e+=K
  692         eor     w7,w7,w15
  693         add     w24,w24,w27             // e+=rot(a,5)
  694         orr     w25,w25,w26
  695         ror     w21,w21,#2
  696         eor     w7,w7,w4
  697         add     w23,w23,w6      // future e+=X[i]
  698         add     w24,w24,w25             // e+=F(b,c,d)
  699         ror     w7,w7,#31
  700         orr     w25,w20,w21
  701         and     w26,w20,w21
  702         eor     w8,w8,w10
  703         ror     w27,w24,#27
  704         and     w25,w25,w22
  705         add     w22,w22,w28             // future e+=K
  706         eor     w8,w8,w16
  707         add     w23,w23,w27             // e+=rot(a,5)
  708         orr     w25,w25,w26
  709         ror     w20,w20,#2
  710         eor     w8,w8,w5
  711         add     w22,w22,w7      // future e+=X[i]
  712         add     w23,w23,w25             // e+=F(b,c,d)
  713         ror     w8,w8,#31
  714         orr     w25,w24,w20
  715         and     w26,w24,w20
  716         eor     w9,w9,w11
  717         ror     w27,w23,#27
  718         and     w25,w25,w21
  719         add     w21,w21,w28             // future e+=K
  720         eor     w9,w9,w17
  721         add     w22,w22,w27             // e+=rot(a,5)
  722         orr     w25,w25,w26
  723         ror     w24,w24,#2
  724         eor     w9,w9,w6
  725         add     w21,w21,w8      // future e+=X[i]
  726         add     w22,w22,w25             // e+=F(b,c,d)
  727         ror     w9,w9,#31
  728         orr     w25,w23,w24
  729         and     w26,w23,w24
  730         eor     w10,w10,w12
  731         ror     w27,w22,#27
  732         and     w25,w25,w20
  733         add     w20,w20,w28             // future e+=K
  734         eor     w10,w10,w19
  735         add     w21,w21,w27             // e+=rot(a,5)
  736         orr     w25,w25,w26
  737         ror     w23,w23,#2
  738         eor     w10,w10,w7
  739         add     w20,w20,w9      // future e+=X[i]
  740         add     w21,w21,w25             // e+=F(b,c,d)
  741         ror     w10,w10,#31
  742         orr     w25,w22,w23
  743         and     w26,w22,w23
  744         eor     w11,w11,w13
  745         ror     w27,w21,#27
  746         and     w25,w25,w24
  747         add     w24,w24,w28             // future e+=K
  748         eor     w11,w11,w3
  749         add     w20,w20,w27             // e+=rot(a,5)
  750         orr     w25,w25,w26
  751         ror     w22,w22,#2
  752         eor     w11,w11,w8
  753         add     w24,w24,w10     // future e+=X[i]
  754         add     w20,w20,w25             // e+=F(b,c,d)
  755         ror     w11,w11,#31
  756         orr     w25,w21,w22
  757         and     w26,w21,w22
  758         eor     w12,w12,w14
  759         ror     w27,w20,#27
  760         and     w25,w25,w23
  761         add     w23,w23,w28             // future e+=K
  762         eor     w12,w12,w4
  763         add     w24,w24,w27             // e+=rot(a,5)
  764         orr     w25,w25,w26
  765         ror     w21,w21,#2
  766         eor     w12,w12,w9
  767         add     w23,w23,w11     // future e+=X[i]
  768         add     w24,w24,w25             // e+=F(b,c,d)
  769         ror     w12,w12,#31
  770         orr     w25,w20,w21
  771         and     w26,w20,w21
  772         eor     w13,w13,w15
  773         ror     w27,w24,#27
  774         and     w25,w25,w22
  775         add     w22,w22,w28             // future e+=K
  776         eor     w13,w13,w5
  777         add     w23,w23,w27             // e+=rot(a,5)
  778         orr     w25,w25,w26
  779         ror     w20,w20,#2
  780         eor     w13,w13,w10
  781         add     w22,w22,w12     // future e+=X[i]
  782         add     w23,w23,w25             // e+=F(b,c,d)
  783         ror     w13,w13,#31
  784         orr     w25,w24,w20
  785         and     w26,w24,w20
  786         eor     w14,w14,w16
  787         ror     w27,w23,#27
  788         and     w25,w25,w21
  789         add     w21,w21,w28             // future e+=K
  790         eor     w14,w14,w6
  791         add     w22,w22,w27             // e+=rot(a,5)
  792         orr     w25,w25,w26
  793         ror     w24,w24,#2
  794         eor     w14,w14,w11
  795         add     w21,w21,w13     // future e+=X[i]
  796         add     w22,w22,w25             // e+=F(b,c,d)
  797         ror     w14,w14,#31
  798         orr     w25,w23,w24
  799         and     w26,w23,w24
  800         eor     w15,w15,w17
  801         ror     w27,w22,#27
  802         and     w25,w25,w20
  803         add     w20,w20,w28             // future e+=K
  804         eor     w15,w15,w7
  805         add     w21,w21,w27             // e+=rot(a,5)
  806         orr     w25,w25,w26
  807         ror     w23,w23,#2
  808         eor     w15,w15,w12
  809         add     w20,w20,w14     // future e+=X[i]
  810         add     w21,w21,w25             // e+=F(b,c,d)
  811         ror     w15,w15,#31
  812         movz    w28,#0xc1d6
  813         movk    w28,#0xca62,lsl#16
  814         orr     w25,w22,w23
  815         and     w26,w22,w23
  816         eor     w16,w16,w19
  817         ror     w27,w21,#27
  818         and     w25,w25,w24
  819         add     w24,w24,w28             // future e+=K
  820         eor     w16,w16,w8
  821         add     w20,w20,w27             // e+=rot(a,5)
  822         orr     w25,w25,w26
  823         ror     w22,w22,#2
  824         eor     w16,w16,w13
  825         add     w24,w24,w15     // future e+=X[i]
  826         add     w20,w20,w25             // e+=F(b,c,d)
  827         ror     w16,w16,#31
  828         eor     w17,w17,w3
  829         eor     w25,w23,w21
  830         ror     w27,w20,#27
  831         add     w23,w23,w28             // future e+=K
  832         eor     w17,w17,w9
  833         eor     w25,w25,w22
  834         add     w24,w24,w27             // e+=rot(a,5)
  835         ror     w21,w21,#2
  836         eor     w17,w17,w14
  837         add     w23,w23,w16     // future e+=X[i]
  838         add     w24,w24,w25             // e+=F(b,c,d)
  839         ror     w17,w17,#31
  840         eor     w19,w19,w4
  841         eor     w25,w22,w20
  842         ror     w27,w24,#27
  843         add     w22,w22,w28             // future e+=K
  844         eor     w19,w19,w10
  845         eor     w25,w25,w21
  846         add     w23,w23,w27             // e+=rot(a,5)
  847         ror     w20,w20,#2
  848         eor     w19,w19,w15
  849         add     w22,w22,w17     // future e+=X[i]
  850         add     w23,w23,w25             // e+=F(b,c,d)
  851         ror     w19,w19,#31
  852         eor     w3,w3,w5
  853         eor     w25,w21,w24
  854         ror     w27,w23,#27
  855         add     w21,w21,w28             // future e+=K
  856         eor     w3,w3,w11
  857         eor     w25,w25,w20
  858         add     w22,w22,w27             // e+=rot(a,5)
  859         ror     w24,w24,#2
  860         eor     w3,w3,w16
  861         add     w21,w21,w19     // future e+=X[i]
  862         add     w22,w22,w25             // e+=F(b,c,d)
  863         ror     w3,w3,#31
  864         eor     w4,w4,w6
  865         eor     w25,w20,w23
  866         ror     w27,w22,#27
  867         add     w20,w20,w28             // future e+=K
  868         eor     w4,w4,w12
  869         eor     w25,w25,w24
  870         add     w21,w21,w27             // e+=rot(a,5)
  871         ror     w23,w23,#2
  872         eor     w4,w4,w17
  873         add     w20,w20,w3      // future e+=X[i]
  874         add     w21,w21,w25             // e+=F(b,c,d)
  875         ror     w4,w4,#31
  876         eor     w5,w5,w7
  877         eor     w25,w24,w22
  878         ror     w27,w21,#27
  879         add     w24,w24,w28             // future e+=K
  880         eor     w5,w5,w13
  881         eor     w25,w25,w23
  882         add     w20,w20,w27             // e+=rot(a,5)
  883         ror     w22,w22,#2
  884         eor     w5,w5,w19
  885         add     w24,w24,w4      // future e+=X[i]
  886         add     w20,w20,w25             // e+=F(b,c,d)
  887         ror     w5,w5,#31
  888         eor     w6,w6,w8
  889         eor     w25,w23,w21
  890         ror     w27,w20,#27
  891         add     w23,w23,w28             // future e+=K
  892         eor     w6,w6,w14
  893         eor     w25,w25,w22
  894         add     w24,w24,w27             // e+=rot(a,5)
  895         ror     w21,w21,#2
  896         eor     w6,w6,w3
  897         add     w23,w23,w5      // future e+=X[i]
  898         add     w24,w24,w25             // e+=F(b,c,d)
  899         ror     w6,w6,#31
  900         eor     w7,w7,w9
  901         eor     w25,w22,w20
  902         ror     w27,w24,#27
  903         add     w22,w22,w28             // future e+=K
  904         eor     w7,w7,w15
  905         eor     w25,w25,w21
  906         add     w23,w23,w27             // e+=rot(a,5)
  907         ror     w20,w20,#2
  908         eor     w7,w7,w4
  909         add     w22,w22,w6      // future e+=X[i]
  910         add     w23,w23,w25             // e+=F(b,c,d)
  911         ror     w7,w7,#31
  912         eor     w8,w8,w10
  913         eor     w25,w21,w24
  914         ror     w27,w23,#27
  915         add     w21,w21,w28             // future e+=K
  916         eor     w8,w8,w16
  917         eor     w25,w25,w20
  918         add     w22,w22,w27             // e+=rot(a,5)
  919         ror     w24,w24,#2
  920         eor     w8,w8,w5
  921         add     w21,w21,w7      // future e+=X[i]
  922         add     w22,w22,w25             // e+=F(b,c,d)
  923         ror     w8,w8,#31
  924         eor     w9,w9,w11
  925         eor     w25,w20,w23
  926         ror     w27,w22,#27
  927         add     w20,w20,w28             // future e+=K
  928         eor     w9,w9,w17
  929         eor     w25,w25,w24
  930         add     w21,w21,w27             // e+=rot(a,5)
  931         ror     w23,w23,#2
  932         eor     w9,w9,w6
  933         add     w20,w20,w8      // future e+=X[i]
  934         add     w21,w21,w25             // e+=F(b,c,d)
  935         ror     w9,w9,#31
  936         eor     w10,w10,w12
  937         eor     w25,w24,w22
  938         ror     w27,w21,#27
  939         add     w24,w24,w28             // future e+=K
  940         eor     w10,w10,w19
  941         eor     w25,w25,w23
  942         add     w20,w20,w27             // e+=rot(a,5)
  943         ror     w22,w22,#2
  944         eor     w10,w10,w7
  945         add     w24,w24,w9      // future e+=X[i]
  946         add     w20,w20,w25             // e+=F(b,c,d)
  947         ror     w10,w10,#31
  948         eor     w11,w11,w13
  949         eor     w25,w23,w21
  950         ror     w27,w20,#27
  951         add     w23,w23,w28             // future e+=K
  952         eor     w11,w11,w3
  953         eor     w25,w25,w22
  954         add     w24,w24,w27             // e+=rot(a,5)
  955         ror     w21,w21,#2
  956         eor     w11,w11,w8
  957         add     w23,w23,w10     // future e+=X[i]
  958         add     w24,w24,w25             // e+=F(b,c,d)
  959         ror     w11,w11,#31
  960         eor     w12,w12,w14
  961         eor     w25,w22,w20
  962         ror     w27,w24,#27
  963         add     w22,w22,w28             // future e+=K
  964         eor     w12,w12,w4
  965         eor     w25,w25,w21
  966         add     w23,w23,w27             // e+=rot(a,5)
  967         ror     w20,w20,#2
  968         eor     w12,w12,w9
  969         add     w22,w22,w11     // future e+=X[i]
  970         add     w23,w23,w25             // e+=F(b,c,d)
  971         ror     w12,w12,#31
  972         eor     w13,w13,w15
  973         eor     w25,w21,w24
  974         ror     w27,w23,#27
  975         add     w21,w21,w28             // future e+=K
  976         eor     w13,w13,w5
  977         eor     w25,w25,w20
  978         add     w22,w22,w27             // e+=rot(a,5)
  979         ror     w24,w24,#2
  980         eor     w13,w13,w10
  981         add     w21,w21,w12     // future e+=X[i]
  982         add     w22,w22,w25             // e+=F(b,c,d)
  983         ror     w13,w13,#31
  984         eor     w14,w14,w16
  985         eor     w25,w20,w23
  986         ror     w27,w22,#27
  987         add     w20,w20,w28             // future e+=K
  988         eor     w14,w14,w6
  989         eor     w25,w25,w24
  990         add     w21,w21,w27             // e+=rot(a,5)
  991         ror     w23,w23,#2
  992         eor     w14,w14,w11
  993         add     w20,w20,w13     // future e+=X[i]
  994         add     w21,w21,w25             // e+=F(b,c,d)
  995         ror     w14,w14,#31
  996         eor     w15,w15,w17
  997         eor     w25,w24,w22
  998         ror     w27,w21,#27
  999         add     w24,w24,w28             // future e+=K
 1000         eor     w15,w15,w7
 1001         eor     w25,w25,w23
 1002         add     w20,w20,w27             // e+=rot(a,5)
 1003         ror     w22,w22,#2
 1004         eor     w15,w15,w12
 1005         add     w24,w24,w14     // future e+=X[i]
 1006         add     w20,w20,w25             // e+=F(b,c,d)
 1007         ror     w15,w15,#31
 1008         eor     w16,w16,w19
 1009         eor     w25,w23,w21
 1010         ror     w27,w20,#27
 1011         add     w23,w23,w28             // future e+=K
 1012         eor     w16,w16,w8
 1013         eor     w25,w25,w22
 1014         add     w24,w24,w27             // e+=rot(a,5)
 1015         ror     w21,w21,#2
 1016         eor     w16,w16,w13
 1017         add     w23,w23,w15     // future e+=X[i]
 1018         add     w24,w24,w25             // e+=F(b,c,d)
 1019         ror     w16,w16,#31
 1020         eor     w17,w17,w3
 1021         eor     w25,w22,w20
 1022         ror     w27,w24,#27
 1023         add     w22,w22,w28             // future e+=K
 1024         eor     w17,w17,w9
 1025         eor     w25,w25,w21
 1026         add     w23,w23,w27             // e+=rot(a,5)
 1027         ror     w20,w20,#2
 1028         eor     w17,w17,w14
 1029         add     w22,w22,w16     // future e+=X[i]
 1030         add     w23,w23,w25             // e+=F(b,c,d)
 1031         ror     w17,w17,#31
 1032         eor     w19,w19,w4
 1033         eor     w25,w21,w24
 1034         ror     w27,w23,#27
 1035         add     w21,w21,w28             // future e+=K
 1036         eor     w19,w19,w10
 1037         eor     w25,w25,w20
 1038         add     w22,w22,w27             // e+=rot(a,5)
 1039         ror     w24,w24,#2
 1040         eor     w19,w19,w15
 1041         add     w21,w21,w17     // future e+=X[i]
 1042         add     w22,w22,w25             // e+=F(b,c,d)
 1043         ror     w19,w19,#31
 1044         ldp     w4,w5,[x0]
 1045         eor     w25,w20,w23
 1046         ror     w27,w22,#27
 1047         add     w20,w20,w28             // future e+=K
 1048         eor     w25,w25,w24
 1049         add     w21,w21,w27             // e+=rot(a,5)
 1050         ror     w23,w23,#2
 1051         add     w20,w20,w19     // future e+=X[i]
 1052         add     w21,w21,w25             // e+=F(b,c,d)
 1053         ldp     w6,w7,[x0,#8]
 1054         eor     w25,w24,w22
 1055         ror     w27,w21,#27
 1056         eor     w25,w25,w23
 1057         add     w20,w20,w27             // e+=rot(a,5)
 1058         ror     w22,w22,#2
 1059         ldr     w8,[x0,#16]
 1060         add     w20,w20,w25             // e+=F(b,c,d)
 1061         add     w21,w21,w5
 1062         add     w22,w22,w6
 1063         add     w20,w20,w4
 1064         add     w23,w23,w7
 1065         add     w24,w24,w8
 1066         stp     w20,w21,[x0]
 1067         stp     w22,w23,[x0,#8]
 1068         str     w24,[x0,#16]
 1069         cbnz    x2,.Loop
 1070 
 1071         ldp     x19,x20,[sp,#16]
 1072         ldp     x21,x22,[sp,#32]
 1073         ldp     x23,x24,[sp,#48]
 1074         ldp     x25,x26,[sp,#64]
 1075         ldp     x27,x28,[sp,#80]
 1076         ldr     x29,[sp],#96
 1077         ret
 1078 .size   sha1_block_data_order,.-sha1_block_data_order
 1079 .type   sha1_block_armv8,%function
 1080 .align  6
 1081 sha1_block_armv8:
 1082 .Lv8_entry:
 1083         stp     x29,x30,[sp,#-16]!
 1084         add     x29,sp,#0
 1085 
 1086         adr     x4,.Lconst
 1087         eor     v1.16b,v1.16b,v1.16b
 1088         ld1     {v0.4s},[x0],#16
 1089         ld1     {v1.s}[0],[x0]
 1090         sub     x0,x0,#16
 1091         ld1     {v16.4s,v17.4s,v18.4s,v19.4s},[x4]
 1092 
 1093 .Loop_hw:
 1094         ld1     {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
 1095         sub     x2,x2,#1
 1096         rev32   v4.16b,v4.16b
 1097         rev32   v5.16b,v5.16b
 1098 
 1099         add     v20.4s,v16.4s,v4.4s
 1100         rev32   v6.16b,v6.16b
 1101         orr     v22.16b,v0.16b,v0.16b   // offload
 1102 
 1103         add     v21.4s,v16.4s,v5.4s
 1104         rev32   v7.16b,v7.16b
 1105 .inst   0x5e280803      //sha1h v3.16b,v0.16b
 1106 .inst   0x5e140020      //sha1c v0.16b,v1.16b,v20.4s            // 0
 1107         add     v20.4s,v16.4s,v6.4s
 1108 .inst   0x5e0630a4      //sha1su0 v4.16b,v5.16b,v6.16b
 1109 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 1
 1110 .inst   0x5e150060      //sha1c v0.16b,v3.16b,v21.4s
 1111         add     v21.4s,v16.4s,v7.4s
 1112 .inst   0x5e2818e4      //sha1su1 v4.16b,v7.16b
 1113 .inst   0x5e0730c5      //sha1su0 v5.16b,v6.16b,v7.16b
 1114 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 2
 1115 .inst   0x5e140040      //sha1c v0.16b,v2.16b,v20.4s
 1116         add     v20.4s,v16.4s,v4.4s
 1117 .inst   0x5e281885      //sha1su1 v5.16b,v4.16b
 1118 .inst   0x5e0430e6      //sha1su0 v6.16b,v7.16b,v4.16b
 1119 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 3
 1120 .inst   0x5e150060      //sha1c v0.16b,v3.16b,v21.4s
 1121         add     v21.4s,v17.4s,v5.4s
 1122 .inst   0x5e2818a6      //sha1su1 v6.16b,v5.16b
 1123 .inst   0x5e053087      //sha1su0 v7.16b,v4.16b,v5.16b
 1124 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 4
 1125 .inst   0x5e140040      //sha1c v0.16b,v2.16b,v20.4s
 1126         add     v20.4s,v17.4s,v6.4s
 1127 .inst   0x5e2818c7      //sha1su1 v7.16b,v6.16b
 1128 .inst   0x5e0630a4      //sha1su0 v4.16b,v5.16b,v6.16b
 1129 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 5
 1130 .inst   0x5e151060      //sha1p v0.16b,v3.16b,v21.4s
 1131         add     v21.4s,v17.4s,v7.4s
 1132 .inst   0x5e2818e4      //sha1su1 v4.16b,v7.16b
 1133 .inst   0x5e0730c5      //sha1su0 v5.16b,v6.16b,v7.16b
 1134 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 6
 1135 .inst   0x5e141040      //sha1p v0.16b,v2.16b,v20.4s
 1136         add     v20.4s,v17.4s,v4.4s
 1137 .inst   0x5e281885      //sha1su1 v5.16b,v4.16b
 1138 .inst   0x5e0430e6      //sha1su0 v6.16b,v7.16b,v4.16b
 1139 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 7
 1140 .inst   0x5e151060      //sha1p v0.16b,v3.16b,v21.4s
 1141         add     v21.4s,v17.4s,v5.4s
 1142 .inst   0x5e2818a6      //sha1su1 v6.16b,v5.16b
 1143 .inst   0x5e053087      //sha1su0 v7.16b,v4.16b,v5.16b
 1144 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 8
 1145 .inst   0x5e141040      //sha1p v0.16b,v2.16b,v20.4s
 1146         add     v20.4s,v18.4s,v6.4s
 1147 .inst   0x5e2818c7      //sha1su1 v7.16b,v6.16b
 1148 .inst   0x5e0630a4      //sha1su0 v4.16b,v5.16b,v6.16b
 1149 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 9
 1150 .inst   0x5e151060      //sha1p v0.16b,v3.16b,v21.4s
 1151         add     v21.4s,v18.4s,v7.4s
 1152 .inst   0x5e2818e4      //sha1su1 v4.16b,v7.16b
 1153 .inst   0x5e0730c5      //sha1su0 v5.16b,v6.16b,v7.16b
 1154 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 10
 1155 .inst   0x5e142040      //sha1m v0.16b,v2.16b,v20.4s
 1156         add     v20.4s,v18.4s,v4.4s
 1157 .inst   0x5e281885      //sha1su1 v5.16b,v4.16b
 1158 .inst   0x5e0430e6      //sha1su0 v6.16b,v7.16b,v4.16b
 1159 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 11
 1160 .inst   0x5e152060      //sha1m v0.16b,v3.16b,v21.4s
 1161         add     v21.4s,v18.4s,v5.4s
 1162 .inst   0x5e2818a6      //sha1su1 v6.16b,v5.16b
 1163 .inst   0x5e053087      //sha1su0 v7.16b,v4.16b,v5.16b
 1164 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 12
 1165 .inst   0x5e142040      //sha1m v0.16b,v2.16b,v20.4s
 1166         add     v20.4s,v18.4s,v6.4s
 1167 .inst   0x5e2818c7      //sha1su1 v7.16b,v6.16b
 1168 .inst   0x5e0630a4      //sha1su0 v4.16b,v5.16b,v6.16b
 1169 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 13
 1170 .inst   0x5e152060      //sha1m v0.16b,v3.16b,v21.4s
 1171         add     v21.4s,v19.4s,v7.4s
 1172 .inst   0x5e2818e4      //sha1su1 v4.16b,v7.16b
 1173 .inst   0x5e0730c5      //sha1su0 v5.16b,v6.16b,v7.16b
 1174 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 14
 1175 .inst   0x5e142040      //sha1m v0.16b,v2.16b,v20.4s
 1176         add     v20.4s,v19.4s,v4.4s
 1177 .inst   0x5e281885      //sha1su1 v5.16b,v4.16b
 1178 .inst   0x5e0430e6      //sha1su0 v6.16b,v7.16b,v4.16b
 1179 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 15
 1180 .inst   0x5e151060      //sha1p v0.16b,v3.16b,v21.4s
 1181         add     v21.4s,v19.4s,v5.4s
 1182 .inst   0x5e2818a6      //sha1su1 v6.16b,v5.16b
 1183 .inst   0x5e053087      //sha1su0 v7.16b,v4.16b,v5.16b
 1184 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 16
 1185 .inst   0x5e141040      //sha1p v0.16b,v2.16b,v20.4s
 1186         add     v20.4s,v19.4s,v6.4s
 1187 .inst   0x5e2818c7      //sha1su1 v7.16b,v6.16b
 1188 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 17
 1189 .inst   0x5e151060      //sha1p v0.16b,v3.16b,v21.4s
 1190         add     v21.4s,v19.4s,v7.4s
 1191 
 1192 .inst   0x5e280803      //sha1h v3.16b,v0.16b           // 18
 1193 .inst   0x5e141040      //sha1p v0.16b,v2.16b,v20.4s
 1194 
 1195 .inst   0x5e280802      //sha1h v2.16b,v0.16b           // 19
 1196 .inst   0x5e151060      //sha1p v0.16b,v3.16b,v21.4s
 1197 
 1198         add     v1.4s,v1.4s,v2.4s
 1199         add     v0.4s,v0.4s,v22.4s
 1200 
 1201         cbnz    x2,.Loop_hw
 1202 
 1203         st1     {v0.4s},[x0],#16
 1204         st1     {v1.s}[0],[x0]
 1205 
 1206         ldr     x29,[sp],#16
 1207         ret
 1208 .size   sha1_block_armv8,.-sha1_block_armv8
 1209 .align  6
 1210 .Lconst:
 1211 .long   0x5a827999,0x5a827999,0x5a827999,0x5a827999     //K_00_19
 1212 .long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1     //K_20_39
 1213 .long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc     //K_40_59
 1214 .long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6     //K_60_79
 1215 .LOPENSSL_armcap_P:
 1216 #ifdef  __ILP32__
 1217 .long   OPENSSL_armcap_P-.
 1218 #else
 1219 .quad   OPENSSL_armcap_P-.
 1220 #endif
 1221 .byte   83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
 1222 .align  2
 1223 .align  2

Cache object: efa795321f91179bfaaab4d53f999b92


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.