Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/sha/sha256-x86_64.asm

Issue 2219933002: Land BoringSSL roll on master (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 default rel 1 default rel
2 %define XMMWORD 2 %define XMMWORD
3 %define YMMWORD 3 %define YMMWORD
4 %define ZMMWORD 4 %define ZMMWORD
5 section .text code align=64 5 section .text code align=64
6 6
7 7
8 EXTERN OPENSSL_ia32cap_P 8 EXTERN OPENSSL_ia32cap_P
9 global sha256_block_data_order 9 global sha256_block_data_order
10 10
11 ALIGN 16 11 ALIGN 16
12 sha256_block_data_order: 12 sha256_block_data_order:
13 mov QWORD[8+rsp],rdi ;WIN64 prologue 13 mov QWORD[8+rsp],rdi ;WIN64 prologue
14 mov QWORD[16+rsp],rsi 14 mov QWORD[16+rsp],rsi
15 mov rax,rsp 15 mov rax,rsp
16 $L$SEH_begin_sha256_block_data_order: 16 $L$SEH_begin_sha256_block_data_order:
17 mov rdi,rcx 17 mov rdi,rcx
18 mov rsi,rdx 18 mov rsi,rdx
19 mov rdx,r8 19 mov rdx,r8
20 20
21 21
22 lea r11,[OPENSSL_ia32cap_P] 22 lea r11,[OPENSSL_ia32cap_P]
23 mov r9d,DWORD[r11] 23 mov r9d,DWORD[r11]
24 mov r10d,DWORD[4+r11] 24 mov r10d,DWORD[4+r11]
25 mov r11d,DWORD[8+r11] 25 mov r11d,DWORD[8+r11]
26 and r9d,1073741824
27 and r10d,268435968
28 or r10d,r9d
29 cmp r10d,1342177792
30 je NEAR $L$avx_shortcut
26 test r10d,512 31 test r10d,512
27 jnz NEAR $L$ssse3_shortcut 32 jnz NEAR $L$ssse3_shortcut
28 push rbx 33 push rbx
29 push rbp 34 push rbp
30 push r12 35 push r12
31 push r13 36 push r13
32 push r14 37 push r14
33 push r15 38 push r15
34 mov r11,rsp 39 mov r11,rsp
35 shl rdx,4 40 shl rdx,4
(...skipping 2834 matching lines...) Expand 10 before | Expand all | Expand 10 after
2870 mov r13,QWORD[16+rsi] 2875 mov r13,QWORD[16+rsi]
2871 mov r12,QWORD[24+rsi] 2876 mov r12,QWORD[24+rsi]
2872 mov rbp,QWORD[32+rsi] 2877 mov rbp,QWORD[32+rsi]
2873 mov rbx,QWORD[40+rsi] 2878 mov rbx,QWORD[40+rsi]
2874 lea rsp,[48+rsi] 2879 lea rsp,[48+rsi]
2875 $L$epilogue_ssse3: 2880 $L$epilogue_ssse3:
2876 mov rdi,QWORD[8+rsp] ;WIN64 epilogue 2881 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
2877 mov rsi,QWORD[16+rsp] 2882 mov rsi,QWORD[16+rsp]
2878 DB 0F3h,0C3h ;repret 2883 DB 0F3h,0C3h ;repret
2879 $L$SEH_end_sha256_block_data_order_ssse3: 2884 $L$SEH_end_sha256_block_data_order_ssse3:
2885
2886 ALIGN 64
2887 sha256_block_data_order_avx:
2888 mov QWORD[8+rsp],rdi ;WIN64 prologue
2889 mov QWORD[16+rsp],rsi
2890 mov rax,rsp
2891 $L$SEH_begin_sha256_block_data_order_avx:
2892 mov rdi,rcx
2893 mov rsi,rdx
2894 mov rdx,r8
2895
2896
2897 $L$avx_shortcut:
2898 push rbx
2899 push rbp
2900 push r12
2901 push r13
2902 push r14
2903 push r15
2904 mov r11,rsp
2905 shl rdx,4
2906 sub rsp,160
2907 lea rdx,[rdx*4+rsi]
2908 and rsp,-64
2909 mov QWORD[((64+0))+rsp],rdi
2910 mov QWORD[((64+8))+rsp],rsi
2911 mov QWORD[((64+16))+rsp],rdx
2912 mov QWORD[((64+24))+rsp],r11
2913 movaps XMMWORD[(64+32)+rsp],xmm6
2914 movaps XMMWORD[(64+48)+rsp],xmm7
2915 movaps XMMWORD[(64+64)+rsp],xmm8
2916 movaps XMMWORD[(64+80)+rsp],xmm9
2917 $L$prologue_avx:
2918
2919 vzeroupper
2920 mov eax,DWORD[rdi]
2921 mov ebx,DWORD[4+rdi]
2922 mov ecx,DWORD[8+rdi]
2923 mov edx,DWORD[12+rdi]
2924 mov r8d,DWORD[16+rdi]
2925 mov r9d,DWORD[20+rdi]
2926 mov r10d,DWORD[24+rdi]
2927 mov r11d,DWORD[28+rdi]
2928 vmovdqa xmm8,XMMWORD[((K256+512+32))]
2929 vmovdqa xmm9,XMMWORD[((K256+512+64))]
2930 jmp NEAR $L$loop_avx
2931 ALIGN 16
2932 $L$loop_avx:
2933 vmovdqa xmm7,XMMWORD[((K256+512))]
2934 vmovdqu xmm0,XMMWORD[rsi]
2935 vmovdqu xmm1,XMMWORD[16+rsi]
2936 vmovdqu xmm2,XMMWORD[32+rsi]
2937 vmovdqu xmm3,XMMWORD[48+rsi]
2938 vpshufb xmm0,xmm0,xmm7
2939 lea rbp,[K256]
2940 vpshufb xmm1,xmm1,xmm7
2941 vpshufb xmm2,xmm2,xmm7
2942 vpaddd xmm4,xmm0,XMMWORD[rbp]
2943 vpshufb xmm3,xmm3,xmm7
2944 vpaddd xmm5,xmm1,XMMWORD[32+rbp]
2945 vpaddd xmm6,xmm2,XMMWORD[64+rbp]
2946 vpaddd xmm7,xmm3,XMMWORD[96+rbp]
2947 vmovdqa XMMWORD[rsp],xmm4
2948 mov r14d,eax
2949 vmovdqa XMMWORD[16+rsp],xmm5
2950 mov edi,ebx
2951 vmovdqa XMMWORD[32+rsp],xmm6
2952 xor edi,ecx
2953 vmovdqa XMMWORD[48+rsp],xmm7
2954 mov r13d,r8d
2955 jmp NEAR $L$avx_00_47
2956
2957 ALIGN 16
2958 $L$avx_00_47:
2959 sub rbp,-128
2960 vpalignr xmm4,xmm1,xmm0,4
2961 shrd r13d,r13d,14
2962 mov eax,r14d
2963 mov r12d,r9d
2964 vpalignr xmm7,xmm3,xmm2,4
2965 shrd r14d,r14d,9
2966 xor r13d,r8d
2967 xor r12d,r10d
2968 vpsrld xmm6,xmm4,7
2969 shrd r13d,r13d,5
2970 xor r14d,eax
2971 and r12d,r8d
2972 vpaddd xmm0,xmm0,xmm7
2973 xor r13d,r8d
2974 add r11d,DWORD[rsp]
2975 mov r15d,eax
2976 vpsrld xmm7,xmm4,3
2977 xor r12d,r10d
2978 shrd r14d,r14d,11
2979 xor r15d,ebx
2980 vpslld xmm5,xmm4,14
2981 add r11d,r12d
2982 shrd r13d,r13d,6
2983 and edi,r15d
2984 vpxor xmm4,xmm7,xmm6
2985 xor r14d,eax
2986 add r11d,r13d
2987 xor edi,ebx
2988 vpshufd xmm7,xmm3,250
2989 shrd r14d,r14d,2
2990 add edx,r11d
2991 add r11d,edi
2992 vpsrld xmm6,xmm6,11
2993 mov r13d,edx
2994 add r14d,r11d
2995 shrd r13d,r13d,14
2996 vpxor xmm4,xmm4,xmm5
2997 mov r11d,r14d
2998 mov r12d,r8d
2999 shrd r14d,r14d,9
3000 vpslld xmm5,xmm5,11
3001 xor r13d,edx
3002 xor r12d,r9d
3003 shrd r13d,r13d,5
3004 vpxor xmm4,xmm4,xmm6
3005 xor r14d,r11d
3006 and r12d,edx
3007 xor r13d,edx
3008 vpsrld xmm6,xmm7,10
3009 add r10d,DWORD[4+rsp]
3010 mov edi,r11d
3011 xor r12d,r9d
3012 vpxor xmm4,xmm4,xmm5
3013 shrd r14d,r14d,11
3014 xor edi,eax
3015 add r10d,r12d
3016 vpsrlq xmm7,xmm7,17
3017 shrd r13d,r13d,6
3018 and r15d,edi
3019 xor r14d,r11d
3020 vpaddd xmm0,xmm0,xmm4
3021 add r10d,r13d
3022 xor r15d,eax
3023 shrd r14d,r14d,2
3024 vpxor xmm6,xmm6,xmm7
3025 add ecx,r10d
3026 add r10d,r15d
3027 mov r13d,ecx
3028 vpsrlq xmm7,xmm7,2
3029 add r14d,r10d
3030 shrd r13d,r13d,14
3031 mov r10d,r14d
3032 vpxor xmm6,xmm6,xmm7
3033 mov r12d,edx
3034 shrd r14d,r14d,9
3035 xor r13d,ecx
3036 vpshufb xmm6,xmm6,xmm8
3037 xor r12d,r8d
3038 shrd r13d,r13d,5
3039 xor r14d,r10d
3040 vpaddd xmm0,xmm0,xmm6
3041 and r12d,ecx
3042 xor r13d,ecx
3043 add r9d,DWORD[8+rsp]
3044 vpshufd xmm7,xmm0,80
3045 mov r15d,r10d
3046 xor r12d,r8d
3047 shrd r14d,r14d,11
3048 vpsrld xmm6,xmm7,10
3049 xor r15d,r11d
3050 add r9d,r12d
3051 shrd r13d,r13d,6
3052 vpsrlq xmm7,xmm7,17
3053 and edi,r15d
3054 xor r14d,r10d
3055 add r9d,r13d
3056 vpxor xmm6,xmm6,xmm7
3057 xor edi,r11d
3058 shrd r14d,r14d,2
3059 add ebx,r9d
3060 vpsrlq xmm7,xmm7,2
3061 add r9d,edi
3062 mov r13d,ebx
3063 add r14d,r9d
3064 vpxor xmm6,xmm6,xmm7
3065 shrd r13d,r13d,14
3066 mov r9d,r14d
3067 mov r12d,ecx
3068 vpshufb xmm6,xmm6,xmm9
3069 shrd r14d,r14d,9
3070 xor r13d,ebx
3071 xor r12d,edx
3072 vpaddd xmm0,xmm0,xmm6
3073 shrd r13d,r13d,5
3074 xor r14d,r9d
3075 and r12d,ebx
3076 vpaddd xmm6,xmm0,XMMWORD[rbp]
3077 xor r13d,ebx
3078 add r8d,DWORD[12+rsp]
3079 mov edi,r9d
3080 xor r12d,edx
3081 shrd r14d,r14d,11
3082 xor edi,r10d
3083 add r8d,r12d
3084 shrd r13d,r13d,6
3085 and r15d,edi
3086 xor r14d,r9d
3087 add r8d,r13d
3088 xor r15d,r10d
3089 shrd r14d,r14d,2
3090 add eax,r8d
3091 add r8d,r15d
3092 mov r13d,eax
3093 add r14d,r8d
3094 vmovdqa XMMWORD[rsp],xmm6
3095 vpalignr xmm4,xmm2,xmm1,4
3096 shrd r13d,r13d,14
3097 mov r8d,r14d
3098 mov r12d,ebx
3099 vpalignr xmm7,xmm0,xmm3,4
3100 shrd r14d,r14d,9
3101 xor r13d,eax
3102 xor r12d,ecx
3103 vpsrld xmm6,xmm4,7
3104 shrd r13d,r13d,5
3105 xor r14d,r8d
3106 and r12d,eax
3107 vpaddd xmm1,xmm1,xmm7
3108 xor r13d,eax
3109 add edx,DWORD[16+rsp]
3110 mov r15d,r8d
3111 vpsrld xmm7,xmm4,3
3112 xor r12d,ecx
3113 shrd r14d,r14d,11
3114 xor r15d,r9d
3115 vpslld xmm5,xmm4,14
3116 add edx,r12d
3117 shrd r13d,r13d,6
3118 and edi,r15d
3119 vpxor xmm4,xmm7,xmm6
3120 xor r14d,r8d
3121 add edx,r13d
3122 xor edi,r9d
3123 vpshufd xmm7,xmm0,250
3124 shrd r14d,r14d,2
3125 add r11d,edx
3126 add edx,edi
3127 vpsrld xmm6,xmm6,11
3128 mov r13d,r11d
3129 add r14d,edx
3130 shrd r13d,r13d,14
3131 vpxor xmm4,xmm4,xmm5
3132 mov edx,r14d
3133 mov r12d,eax
3134 shrd r14d,r14d,9
3135 vpslld xmm5,xmm5,11
3136 xor r13d,r11d
3137 xor r12d,ebx
3138 shrd r13d,r13d,5
3139 vpxor xmm4,xmm4,xmm6
3140 xor r14d,edx
3141 and r12d,r11d
3142 xor r13d,r11d
3143 vpsrld xmm6,xmm7,10
3144 add ecx,DWORD[20+rsp]
3145 mov edi,edx
3146 xor r12d,ebx
3147 vpxor xmm4,xmm4,xmm5
3148 shrd r14d,r14d,11
3149 xor edi,r8d
3150 add ecx,r12d
3151 vpsrlq xmm7,xmm7,17
3152 shrd r13d,r13d,6
3153 and r15d,edi
3154 xor r14d,edx
3155 vpaddd xmm1,xmm1,xmm4
3156 add ecx,r13d
3157 xor r15d,r8d
3158 shrd r14d,r14d,2
3159 vpxor xmm6,xmm6,xmm7
3160 add r10d,ecx
3161 add ecx,r15d
3162 mov r13d,r10d
3163 vpsrlq xmm7,xmm7,2
3164 add r14d,ecx
3165 shrd r13d,r13d,14
3166 mov ecx,r14d
3167 vpxor xmm6,xmm6,xmm7
3168 mov r12d,r11d
3169 shrd r14d,r14d,9
3170 xor r13d,r10d
3171 vpshufb xmm6,xmm6,xmm8
3172 xor r12d,eax
3173 shrd r13d,r13d,5
3174 xor r14d,ecx
3175 vpaddd xmm1,xmm1,xmm6
3176 and r12d,r10d
3177 xor r13d,r10d
3178 add ebx,DWORD[24+rsp]
3179 vpshufd xmm7,xmm1,80
3180 mov r15d,ecx
3181 xor r12d,eax
3182 shrd r14d,r14d,11
3183 vpsrld xmm6,xmm7,10
3184 xor r15d,edx
3185 add ebx,r12d
3186 shrd r13d,r13d,6
3187 vpsrlq xmm7,xmm7,17
3188 and edi,r15d
3189 xor r14d,ecx
3190 add ebx,r13d
3191 vpxor xmm6,xmm6,xmm7
3192 xor edi,edx
3193 shrd r14d,r14d,2
3194 add r9d,ebx
3195 vpsrlq xmm7,xmm7,2
3196 add ebx,edi
3197 mov r13d,r9d
3198 add r14d,ebx
3199 vpxor xmm6,xmm6,xmm7
3200 shrd r13d,r13d,14
3201 mov ebx,r14d
3202 mov r12d,r10d
3203 vpshufb xmm6,xmm6,xmm9
3204 shrd r14d,r14d,9
3205 xor r13d,r9d
3206 xor r12d,r11d
3207 vpaddd xmm1,xmm1,xmm6
3208 shrd r13d,r13d,5
3209 xor r14d,ebx
3210 and r12d,r9d
3211 vpaddd xmm6,xmm1,XMMWORD[32+rbp]
3212 xor r13d,r9d
3213 add eax,DWORD[28+rsp]
3214 mov edi,ebx
3215 xor r12d,r11d
3216 shrd r14d,r14d,11
3217 xor edi,ecx
3218 add eax,r12d
3219 shrd r13d,r13d,6
3220 and r15d,edi
3221 xor r14d,ebx
3222 add eax,r13d
3223 xor r15d,ecx
3224 shrd r14d,r14d,2
3225 add r8d,eax
3226 add eax,r15d
3227 mov r13d,r8d
3228 add r14d,eax
3229 vmovdqa XMMWORD[16+rsp],xmm6
3230 vpalignr xmm4,xmm3,xmm2,4
3231 shrd r13d,r13d,14
3232 mov eax,r14d
3233 mov r12d,r9d
3234 vpalignr xmm7,xmm1,xmm0,4
3235 shrd r14d,r14d,9
3236 xor r13d,r8d
3237 xor r12d,r10d
3238 vpsrld xmm6,xmm4,7
3239 shrd r13d,r13d,5
3240 xor r14d,eax
3241 and r12d,r8d
3242 vpaddd xmm2,xmm2,xmm7
3243 xor r13d,r8d
3244 add r11d,DWORD[32+rsp]
3245 mov r15d,eax
3246 vpsrld xmm7,xmm4,3
3247 xor r12d,r10d
3248 shrd r14d,r14d,11
3249 xor r15d,ebx
3250 vpslld xmm5,xmm4,14
3251 add r11d,r12d
3252 shrd r13d,r13d,6
3253 and edi,r15d
3254 vpxor xmm4,xmm7,xmm6
3255 xor r14d,eax
3256 add r11d,r13d
3257 xor edi,ebx
3258 vpshufd xmm7,xmm1,250
3259 shrd r14d,r14d,2
3260 add edx,r11d
3261 add r11d,edi
3262 vpsrld xmm6,xmm6,11
3263 mov r13d,edx
3264 add r14d,r11d
3265 shrd r13d,r13d,14
3266 vpxor xmm4,xmm4,xmm5
3267 mov r11d,r14d
3268 mov r12d,r8d
3269 shrd r14d,r14d,9
3270 vpslld xmm5,xmm5,11
3271 xor r13d,edx
3272 xor r12d,r9d
3273 shrd r13d,r13d,5
3274 vpxor xmm4,xmm4,xmm6
3275 xor r14d,r11d
3276 and r12d,edx
3277 xor r13d,edx
3278 vpsrld xmm6,xmm7,10
3279 add r10d,DWORD[36+rsp]
3280 mov edi,r11d
3281 xor r12d,r9d
3282 vpxor xmm4,xmm4,xmm5
3283 shrd r14d,r14d,11
3284 xor edi,eax
3285 add r10d,r12d
3286 vpsrlq xmm7,xmm7,17
3287 shrd r13d,r13d,6
3288 and r15d,edi
3289 xor r14d,r11d
3290 vpaddd xmm2,xmm2,xmm4
3291 add r10d,r13d
3292 xor r15d,eax
3293 shrd r14d,r14d,2
3294 vpxor xmm6,xmm6,xmm7
3295 add ecx,r10d
3296 add r10d,r15d
3297 mov r13d,ecx
3298 vpsrlq xmm7,xmm7,2
3299 add r14d,r10d
3300 shrd r13d,r13d,14
3301 mov r10d,r14d
3302 vpxor xmm6,xmm6,xmm7
3303 mov r12d,edx
3304 shrd r14d,r14d,9
3305 xor r13d,ecx
3306 vpshufb xmm6,xmm6,xmm8
3307 xor r12d,r8d
3308 shrd r13d,r13d,5
3309 xor r14d,r10d
3310 vpaddd xmm2,xmm2,xmm6
3311 and r12d,ecx
3312 xor r13d,ecx
3313 add r9d,DWORD[40+rsp]
3314 vpshufd xmm7,xmm2,80
3315 mov r15d,r10d
3316 xor r12d,r8d
3317 shrd r14d,r14d,11
3318 vpsrld xmm6,xmm7,10
3319 xor r15d,r11d
3320 add r9d,r12d
3321 shrd r13d,r13d,6
3322 vpsrlq xmm7,xmm7,17
3323 and edi,r15d
3324 xor r14d,r10d
3325 add r9d,r13d
3326 vpxor xmm6,xmm6,xmm7
3327 xor edi,r11d
3328 shrd r14d,r14d,2
3329 add ebx,r9d
3330 vpsrlq xmm7,xmm7,2
3331 add r9d,edi
3332 mov r13d,ebx
3333 add r14d,r9d
3334 vpxor xmm6,xmm6,xmm7
3335 shrd r13d,r13d,14
3336 mov r9d,r14d
3337 mov r12d,ecx
3338 vpshufb xmm6,xmm6,xmm9
3339 shrd r14d,r14d,9
3340 xor r13d,ebx
3341 xor r12d,edx
3342 vpaddd xmm2,xmm2,xmm6
3343 shrd r13d,r13d,5
3344 xor r14d,r9d
3345 and r12d,ebx
3346 vpaddd xmm6,xmm2,XMMWORD[64+rbp]
3347 xor r13d,ebx
3348 add r8d,DWORD[44+rsp]
3349 mov edi,r9d
3350 xor r12d,edx
3351 shrd r14d,r14d,11
3352 xor edi,r10d
3353 add r8d,r12d
3354 shrd r13d,r13d,6
3355 and r15d,edi
3356 xor r14d,r9d
3357 add r8d,r13d
3358 xor r15d,r10d
3359 shrd r14d,r14d,2
3360 add eax,r8d
3361 add r8d,r15d
3362 mov r13d,eax
3363 add r14d,r8d
3364 vmovdqa XMMWORD[32+rsp],xmm6
3365 vpalignr xmm4,xmm0,xmm3,4
3366 shrd r13d,r13d,14
3367 mov r8d,r14d
3368 mov r12d,ebx
3369 vpalignr xmm7,xmm2,xmm1,4
3370 shrd r14d,r14d,9
3371 xor r13d,eax
3372 xor r12d,ecx
3373 vpsrld xmm6,xmm4,7
3374 shrd r13d,r13d,5
3375 xor r14d,r8d
3376 and r12d,eax
3377 vpaddd xmm3,xmm3,xmm7
3378 xor r13d,eax
3379 add edx,DWORD[48+rsp]
3380 mov r15d,r8d
3381 vpsrld xmm7,xmm4,3
3382 xor r12d,ecx
3383 shrd r14d,r14d,11
3384 xor r15d,r9d
3385 vpslld xmm5,xmm4,14
3386 add edx,r12d
3387 shrd r13d,r13d,6
3388 and edi,r15d
3389 vpxor xmm4,xmm7,xmm6
3390 xor r14d,r8d
3391 add edx,r13d
3392 xor edi,r9d
3393 vpshufd xmm7,xmm2,250
3394 shrd r14d,r14d,2
3395 add r11d,edx
3396 add edx,edi
3397 vpsrld xmm6,xmm6,11
3398 mov r13d,r11d
3399 add r14d,edx
3400 shrd r13d,r13d,14
3401 vpxor xmm4,xmm4,xmm5
3402 mov edx,r14d
3403 mov r12d,eax
3404 shrd r14d,r14d,9
3405 vpslld xmm5,xmm5,11
3406 xor r13d,r11d
3407 xor r12d,ebx
3408 shrd r13d,r13d,5
3409 vpxor xmm4,xmm4,xmm6
3410 xor r14d,edx
3411 and r12d,r11d
3412 xor r13d,r11d
3413 vpsrld xmm6,xmm7,10
3414 add ecx,DWORD[52+rsp]
3415 mov edi,edx
3416 xor r12d,ebx
3417 vpxor xmm4,xmm4,xmm5
3418 shrd r14d,r14d,11
3419 xor edi,r8d
3420 add ecx,r12d
3421 vpsrlq xmm7,xmm7,17
3422 shrd r13d,r13d,6
3423 and r15d,edi
3424 xor r14d,edx
3425 vpaddd xmm3,xmm3,xmm4
3426 add ecx,r13d
3427 xor r15d,r8d
3428 shrd r14d,r14d,2
3429 vpxor xmm6,xmm6,xmm7
3430 add r10d,ecx
3431 add ecx,r15d
3432 mov r13d,r10d
3433 vpsrlq xmm7,xmm7,2
3434 add r14d,ecx
3435 shrd r13d,r13d,14
3436 mov ecx,r14d
3437 vpxor xmm6,xmm6,xmm7
3438 mov r12d,r11d
3439 shrd r14d,r14d,9
3440 xor r13d,r10d
3441 vpshufb xmm6,xmm6,xmm8
3442 xor r12d,eax
3443 shrd r13d,r13d,5
3444 xor r14d,ecx
3445 vpaddd xmm3,xmm3,xmm6
3446 and r12d,r10d
3447 xor r13d,r10d
3448 add ebx,DWORD[56+rsp]
3449 vpshufd xmm7,xmm3,80
3450 mov r15d,ecx
3451 xor r12d,eax
3452 shrd r14d,r14d,11
3453 vpsrld xmm6,xmm7,10
3454 xor r15d,edx
3455 add ebx,r12d
3456 shrd r13d,r13d,6
3457 vpsrlq xmm7,xmm7,17
3458 and edi,r15d
3459 xor r14d,ecx
3460 add ebx,r13d
3461 vpxor xmm6,xmm6,xmm7
3462 xor edi,edx
3463 shrd r14d,r14d,2
3464 add r9d,ebx
3465 vpsrlq xmm7,xmm7,2
3466 add ebx,edi
3467 mov r13d,r9d
3468 add r14d,ebx
3469 vpxor xmm6,xmm6,xmm7
3470 shrd r13d,r13d,14
3471 mov ebx,r14d
3472 mov r12d,r10d
3473 vpshufb xmm6,xmm6,xmm9
3474 shrd r14d,r14d,9
3475 xor r13d,r9d
3476 xor r12d,r11d
3477 vpaddd xmm3,xmm3,xmm6
3478 shrd r13d,r13d,5
3479 xor r14d,ebx
3480 and r12d,r9d
3481 vpaddd xmm6,xmm3,XMMWORD[96+rbp]
3482 xor r13d,r9d
3483 add eax,DWORD[60+rsp]
3484 mov edi,ebx
3485 xor r12d,r11d
3486 shrd r14d,r14d,11
3487 xor edi,ecx
3488 add eax,r12d
3489 shrd r13d,r13d,6
3490 and r15d,edi
3491 xor r14d,ebx
3492 add eax,r13d
3493 xor r15d,ecx
3494 shrd r14d,r14d,2
3495 add r8d,eax
3496 add eax,r15d
3497 mov r13d,r8d
3498 add r14d,eax
3499 vmovdqa XMMWORD[48+rsp],xmm6
3500 cmp BYTE[131+rbp],0
3501 jne NEAR $L$avx_00_47
3502 shrd r13d,r13d,14
3503 mov eax,r14d
3504 mov r12d,r9d
3505 shrd r14d,r14d,9
3506 xor r13d,r8d
3507 xor r12d,r10d
3508 shrd r13d,r13d,5
3509 xor r14d,eax
3510 and r12d,r8d
3511 xor r13d,r8d
3512 add r11d,DWORD[rsp]
3513 mov r15d,eax
3514 xor r12d,r10d
3515 shrd r14d,r14d,11
3516 xor r15d,ebx
3517 add r11d,r12d
3518 shrd r13d,r13d,6
3519 and edi,r15d
3520 xor r14d,eax
3521 add r11d,r13d
3522 xor edi,ebx
3523 shrd r14d,r14d,2
3524 add edx,r11d
3525 add r11d,edi
3526 mov r13d,edx
3527 add r14d,r11d
3528 shrd r13d,r13d,14
3529 mov r11d,r14d
3530 mov r12d,r8d
3531 shrd r14d,r14d,9
3532 xor r13d,edx
3533 xor r12d,r9d
3534 shrd r13d,r13d,5
3535 xor r14d,r11d
3536 and r12d,edx
3537 xor r13d,edx
3538 add r10d,DWORD[4+rsp]
3539 mov edi,r11d
3540 xor r12d,r9d
3541 shrd r14d,r14d,11
3542 xor edi,eax
3543 add r10d,r12d
3544 shrd r13d,r13d,6
3545 and r15d,edi
3546 xor r14d,r11d
3547 add r10d,r13d
3548 xor r15d,eax
3549 shrd r14d,r14d,2
3550 add ecx,r10d
3551 add r10d,r15d
3552 mov r13d,ecx
3553 add r14d,r10d
3554 shrd r13d,r13d,14
3555 mov r10d,r14d
3556 mov r12d,edx
3557 shrd r14d,r14d,9
3558 xor r13d,ecx
3559 xor r12d,r8d
3560 shrd r13d,r13d,5
3561 xor r14d,r10d
3562 and r12d,ecx
3563 xor r13d,ecx
3564 add r9d,DWORD[8+rsp]
3565 mov r15d,r10d
3566 xor r12d,r8d
3567 shrd r14d,r14d,11
3568 xor r15d,r11d
3569 add r9d,r12d
3570 shrd r13d,r13d,6
3571 and edi,r15d
3572 xor r14d,r10d
3573 add r9d,r13d
3574 xor edi,r11d
3575 shrd r14d,r14d,2
3576 add ebx,r9d
3577 add r9d,edi
3578 mov r13d,ebx
3579 add r14d,r9d
3580 shrd r13d,r13d,14
3581 mov r9d,r14d
3582 mov r12d,ecx
3583 shrd r14d,r14d,9
3584 xor r13d,ebx
3585 xor r12d,edx
3586 shrd r13d,r13d,5
3587 xor r14d,r9d
3588 and r12d,ebx
3589 xor r13d,ebx
3590 add r8d,DWORD[12+rsp]
3591 mov edi,r9d
3592 xor r12d,edx
3593 shrd r14d,r14d,11
3594 xor edi,r10d
3595 add r8d,r12d
3596 shrd r13d,r13d,6
3597 and r15d,edi
3598 xor r14d,r9d
3599 add r8d,r13d
3600 xor r15d,r10d
3601 shrd r14d,r14d,2
3602 add eax,r8d
3603 add r8d,r15d
3604 mov r13d,eax
3605 add r14d,r8d
3606 shrd r13d,r13d,14
3607 mov r8d,r14d
3608 mov r12d,ebx
3609 shrd r14d,r14d,9
3610 xor r13d,eax
3611 xor r12d,ecx
3612 shrd r13d,r13d,5
3613 xor r14d,r8d
3614 and r12d,eax
3615 xor r13d,eax
3616 add edx,DWORD[16+rsp]
3617 mov r15d,r8d
3618 xor r12d,ecx
3619 shrd r14d,r14d,11
3620 xor r15d,r9d
3621 add edx,r12d
3622 shrd r13d,r13d,6
3623 and edi,r15d
3624 xor r14d,r8d
3625 add edx,r13d
3626 xor edi,r9d
3627 shrd r14d,r14d,2
3628 add r11d,edx
3629 add edx,edi
3630 mov r13d,r11d
3631 add r14d,edx
3632 shrd r13d,r13d,14
3633 mov edx,r14d
3634 mov r12d,eax
3635 shrd r14d,r14d,9
3636 xor r13d,r11d
3637 xor r12d,ebx
3638 shrd r13d,r13d,5
3639 xor r14d,edx
3640 and r12d,r11d
3641 xor r13d,r11d
3642 add ecx,DWORD[20+rsp]
3643 mov edi,edx
3644 xor r12d,ebx
3645 shrd r14d,r14d,11
3646 xor edi,r8d
3647 add ecx,r12d
3648 shrd r13d,r13d,6
3649 and r15d,edi
3650 xor r14d,edx
3651 add ecx,r13d
3652 xor r15d,r8d
3653 shrd r14d,r14d,2
3654 add r10d,ecx
3655 add ecx,r15d
3656 mov r13d,r10d
3657 add r14d,ecx
3658 shrd r13d,r13d,14
3659 mov ecx,r14d
3660 mov r12d,r11d
3661 shrd r14d,r14d,9
3662 xor r13d,r10d
3663 xor r12d,eax
3664 shrd r13d,r13d,5
3665 xor r14d,ecx
3666 and r12d,r10d
3667 xor r13d,r10d
3668 add ebx,DWORD[24+rsp]
3669 mov r15d,ecx
3670 xor r12d,eax
3671 shrd r14d,r14d,11
3672 xor r15d,edx
3673 add ebx,r12d
3674 shrd r13d,r13d,6
3675 and edi,r15d
3676 xor r14d,ecx
3677 add ebx,r13d
3678 xor edi,edx
3679 shrd r14d,r14d,2
3680 add r9d,ebx
3681 add ebx,edi
3682 mov r13d,r9d
3683 add r14d,ebx
3684 shrd r13d,r13d,14
3685 mov ebx,r14d
3686 mov r12d,r10d
3687 shrd r14d,r14d,9
3688 xor r13d,r9d
3689 xor r12d,r11d
3690 shrd r13d,r13d,5
3691 xor r14d,ebx
3692 and r12d,r9d
3693 xor r13d,r9d
3694 add eax,DWORD[28+rsp]
3695 mov edi,ebx
3696 xor r12d,r11d
3697 shrd r14d,r14d,11
3698 xor edi,ecx
3699 add eax,r12d
3700 shrd r13d,r13d,6
3701 and r15d,edi
3702 xor r14d,ebx
3703 add eax,r13d
3704 xor r15d,ecx
3705 shrd r14d,r14d,2
3706 add r8d,eax
3707 add eax,r15d
3708 mov r13d,r8d
3709 add r14d,eax
3710 shrd r13d,r13d,14
3711 mov eax,r14d
3712 mov r12d,r9d
3713 shrd r14d,r14d,9
3714 xor r13d,r8d
3715 xor r12d,r10d
3716 shrd r13d,r13d,5
3717 xor r14d,eax
3718 and r12d,r8d
3719 xor r13d,r8d
3720 add r11d,DWORD[32+rsp]
3721 mov r15d,eax
3722 xor r12d,r10d
3723 shrd r14d,r14d,11
3724 xor r15d,ebx
3725 add r11d,r12d
3726 shrd r13d,r13d,6
3727 and edi,r15d
3728 xor r14d,eax
3729 add r11d,r13d
3730 xor edi,ebx
3731 shrd r14d,r14d,2
3732 add edx,r11d
3733 add r11d,edi
3734 mov r13d,edx
3735 add r14d,r11d
3736 shrd r13d,r13d,14
3737 mov r11d,r14d
3738 mov r12d,r8d
3739 shrd r14d,r14d,9
3740 xor r13d,edx
3741 xor r12d,r9d
3742 shrd r13d,r13d,5
3743 xor r14d,r11d
3744 and r12d,edx
3745 xor r13d,edx
3746 add r10d,DWORD[36+rsp]
3747 mov edi,r11d
3748 xor r12d,r9d
3749 shrd r14d,r14d,11
3750 xor edi,eax
3751 add r10d,r12d
3752 shrd r13d,r13d,6
3753 and r15d,edi
3754 xor r14d,r11d
3755 add r10d,r13d
3756 xor r15d,eax
3757 shrd r14d,r14d,2
3758 add ecx,r10d
3759 add r10d,r15d
3760 mov r13d,ecx
3761 add r14d,r10d
3762 shrd r13d,r13d,14
3763 mov r10d,r14d
3764 mov r12d,edx
3765 shrd r14d,r14d,9
3766 xor r13d,ecx
3767 xor r12d,r8d
3768 shrd r13d,r13d,5
3769 xor r14d,r10d
3770 and r12d,ecx
3771 xor r13d,ecx
3772 add r9d,DWORD[40+rsp]
3773 mov r15d,r10d
3774 xor r12d,r8d
3775 shrd r14d,r14d,11
3776 xor r15d,r11d
3777 add r9d,r12d
3778 shrd r13d,r13d,6
3779 and edi,r15d
3780 xor r14d,r10d
3781 add r9d,r13d
3782 xor edi,r11d
3783 shrd r14d,r14d,2
3784 add ebx,r9d
3785 add r9d,edi
3786 mov r13d,ebx
3787 add r14d,r9d
3788 shrd r13d,r13d,14
3789 mov r9d,r14d
3790 mov r12d,ecx
3791 shrd r14d,r14d,9
3792 xor r13d,ebx
3793 xor r12d,edx
3794 shrd r13d,r13d,5
3795 xor r14d,r9d
3796 and r12d,ebx
3797 xor r13d,ebx
3798 add r8d,DWORD[44+rsp]
3799 mov edi,r9d
3800 xor r12d,edx
3801 shrd r14d,r14d,11
3802 xor edi,r10d
3803 add r8d,r12d
3804 shrd r13d,r13d,6
3805 and r15d,edi
3806 xor r14d,r9d
3807 add r8d,r13d
3808 xor r15d,r10d
3809 shrd r14d,r14d,2
3810 add eax,r8d
3811 add r8d,r15d
3812 mov r13d,eax
3813 add r14d,r8d
3814 shrd r13d,r13d,14
3815 mov r8d,r14d
3816 mov r12d,ebx
3817 shrd r14d,r14d,9
3818 xor r13d,eax
3819 xor r12d,ecx
3820 shrd r13d,r13d,5
3821 xor r14d,r8d
3822 and r12d,eax
3823 xor r13d,eax
3824 add edx,DWORD[48+rsp]
3825 mov r15d,r8d
3826 xor r12d,ecx
3827 shrd r14d,r14d,11
3828 xor r15d,r9d
3829 add edx,r12d
3830 shrd r13d,r13d,6
3831 and edi,r15d
3832 xor r14d,r8d
3833 add edx,r13d
3834 xor edi,r9d
3835 shrd r14d,r14d,2
3836 add r11d,edx
3837 add edx,edi
3838 mov r13d,r11d
3839 add r14d,edx
3840 shrd r13d,r13d,14
3841 mov edx,r14d
3842 mov r12d,eax
3843 shrd r14d,r14d,9
3844 xor r13d,r11d
3845 xor r12d,ebx
3846 shrd r13d,r13d,5
3847 xor r14d,edx
3848 and r12d,r11d
3849 xor r13d,r11d
3850 add ecx,DWORD[52+rsp]
3851 mov edi,edx
3852 xor r12d,ebx
3853 shrd r14d,r14d,11
3854 xor edi,r8d
3855 add ecx,r12d
3856 shrd r13d,r13d,6
3857 and r15d,edi
3858 xor r14d,edx
3859 add ecx,r13d
3860 xor r15d,r8d
3861 shrd r14d,r14d,2
3862 add r10d,ecx
3863 add ecx,r15d
3864 mov r13d,r10d
3865 add r14d,ecx
3866 shrd r13d,r13d,14
3867 mov ecx,r14d
3868 mov r12d,r11d
3869 shrd r14d,r14d,9
3870 xor r13d,r10d
3871 xor r12d,eax
3872 shrd r13d,r13d,5
3873 xor r14d,ecx
3874 and r12d,r10d
3875 xor r13d,r10d
3876 add ebx,DWORD[56+rsp]
3877 mov r15d,ecx
3878 xor r12d,eax
3879 shrd r14d,r14d,11
3880 xor r15d,edx
3881 add ebx,r12d
3882 shrd r13d,r13d,6
3883 and edi,r15d
3884 xor r14d,ecx
3885 add ebx,r13d
3886 xor edi,edx
3887 shrd r14d,r14d,2
3888 add r9d,ebx
3889 add ebx,edi
3890 mov r13d,r9d
3891 add r14d,ebx
3892 shrd r13d,r13d,14
3893 mov ebx,r14d
3894 mov r12d,r10d
3895 shrd r14d,r14d,9
3896 xor r13d,r9d
3897 xor r12d,r11d
3898 shrd r13d,r13d,5
3899 xor r14d,ebx
3900 and r12d,r9d
3901 xor r13d,r9d
3902 add eax,DWORD[60+rsp]
3903 mov edi,ebx
3904 xor r12d,r11d
3905 shrd r14d,r14d,11
3906 xor edi,ecx
3907 add eax,r12d
3908 shrd r13d,r13d,6
3909 and r15d,edi
3910 xor r14d,ebx
3911 add eax,r13d
3912 xor r15d,ecx
3913 shrd r14d,r14d,2
3914 add r8d,eax
3915 add eax,r15d
3916 mov r13d,r8d
3917 add r14d,eax
3918 mov rdi,QWORD[((64+0))+rsp]
3919 mov eax,r14d
3920
3921 add eax,DWORD[rdi]
3922 lea rsi,[64+rsi]
3923 add ebx,DWORD[4+rdi]
3924 add ecx,DWORD[8+rdi]
3925 add edx,DWORD[12+rdi]
3926 add r8d,DWORD[16+rdi]
3927 add r9d,DWORD[20+rdi]
3928 add r10d,DWORD[24+rdi]
3929 add r11d,DWORD[28+rdi]
3930
3931 cmp rsi,QWORD[((64+16))+rsp]
3932
3933 mov DWORD[rdi],eax
3934 mov DWORD[4+rdi],ebx
3935 mov DWORD[8+rdi],ecx
3936 mov DWORD[12+rdi],edx
3937 mov DWORD[16+rdi],r8d
3938 mov DWORD[20+rdi],r9d
3939 mov DWORD[24+rdi],r10d
3940 mov DWORD[28+rdi],r11d
3941 jb NEAR $L$loop_avx
3942
3943 mov rsi,QWORD[((64+24))+rsp]
3944 vzeroupper
3945 movaps xmm6,XMMWORD[((64+32))+rsp]
3946 movaps xmm7,XMMWORD[((64+48))+rsp]
3947 movaps xmm8,XMMWORD[((64+64))+rsp]
3948 movaps xmm9,XMMWORD[((64+80))+rsp]
3949 mov r15,QWORD[rsi]
3950 mov r14,QWORD[8+rsi]
3951 mov r13,QWORD[16+rsi]
3952 mov r12,QWORD[24+rsi]
3953 mov rbp,QWORD[32+rsi]
3954 mov rbx,QWORD[40+rsi]
3955 lea rsp,[48+rsi]
3956 $L$epilogue_avx:
3957 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
3958 mov rsi,QWORD[16+rsp]
3959 DB 0F3h,0C3h ;repret
3960 $L$SEH_end_sha256_block_data_order_avx:
2880 EXTERN __imp_RtlVirtualUnwind 3961 EXTERN __imp_RtlVirtualUnwind
2881 3962
2882 ALIGN 16 3963 ALIGN 16
2883 se_handler: 3964 se_handler:
2884 push rsi 3965 push rsi
2885 push rdi 3966 push rdi
2886 push rbx 3967 push rbx
2887 push rbp 3968 push rbp
2888 push r12 3969 push r12
2889 push r13 3970 push r13
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2975 DB 0F3h,0C3h ;repret 4056 DB 0F3h,0C3h ;repret
2976 4057
2977 section .pdata rdata align=4 4058 section .pdata rdata align=4
2978 ALIGN 4 4059 ALIGN 4
2979 DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase 4060 DD $L$SEH_begin_sha256_block_data_order wrt ..imagebase
2980 DD $L$SEH_end_sha256_block_data_order wrt ..imagebase 4061 DD $L$SEH_end_sha256_block_data_order wrt ..imagebase
2981 DD $L$SEH_info_sha256_block_data_order wrt ..imagebase 4062 DD $L$SEH_info_sha256_block_data_order wrt ..imagebase
2982 DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase 4063 DD $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase
2983 DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase 4064 DD $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
2984 DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase 4065 DD $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
4066 DD $L$SEH_begin_sha256_block_data_order_avx wrt ..imagebase
4067 DD $L$SEH_end_sha256_block_data_order_avx wrt ..imagebase
4068 DD $L$SEH_info_sha256_block_data_order_avx wrt ..imagebase
2985 section .xdata rdata align=8 4069 section .xdata rdata align=8
2986 ALIGN 8 4070 ALIGN 8
2987 $L$SEH_info_sha256_block_data_order: 4071 $L$SEH_info_sha256_block_data_order:
2988 DB 9,0,0,0 4072 DB 9,0,0,0
2989 DD se_handler wrt ..imagebase 4073 DD se_handler wrt ..imagebase
2990 DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase 4074 DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
2991 $L$SEH_info_sha256_block_data_order_ssse3: 4075 $L$SEH_info_sha256_block_data_order_ssse3:
2992 DB 9,0,0,0 4076 DB 9,0,0,0
2993 DD se_handler wrt ..imagebase 4077 DD se_handler wrt ..imagebase
2994 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imageb ase 4078 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imageb ase
4079 $L$SEH_info_sha256_block_data_order_avx:
4080 DB 9,0,0,0
4081 DD se_handler wrt ..imagebase
4082 DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698