Lines Matching +full:2 +full:w

14 # General Public License (GPL) Version 2, available from the file
77 # W[t] + K[t] | W[t+1] + K[t+1]
78 WK_SIZE = 2*8
86 # WK_2(t) points to 1 of 2 qwords at frame.WK depending on t being odd/even
100 # W[t]+K[t] (stack frame)
101 #define WK_2(i) 8*((i%2))+frame_WK(%rsp)
131 add WK_2(idx), T1 # W[t] + K[t] from message scheduler
135 add h_64, T1 # T1 = CH(e,f,g) + W[t] + K[t] + h
137 add tmp0, T1 # T1 = CH(e,f,g) + W[t] + K[t] + S1(e)
156 # Compute rounds t-2 and t-1
159 # Two rounds are computed based on the values for K[t-2]+W[t-2] and
160 # K[t-1]+W[t-1] which were previously stored at WK_2 by the message
167 # Eg. XMM4=W[t-2] really means XMM4={W[t-2]|W[t-1]}
171 idx = \rnd - 2
172 vmovdqa W_t(idx), %xmm4 # XMM4 = W[t-2]
174 vmovdqu W_t(idx), %xmm5 # XMM5 = W[t-15]
176 vpsrlq $61, %xmm4, %xmm0 # XMM0 = W[t-2]>>61
178 vpsrlq $1, %xmm5, %xmm6 # XMM6 = W[t-15]>>1
181 vpsrlq $19, %xmm4, %xmm1 # XMM1 = W[t-2]>>19
184 vpxor %xmm1, %xmm0, %xmm0 # XMM0 = W[t-2]>>61 ^ W[t-2]>>19
188 vpsrlq $8, %xmm5, %xmm7 # XMM7 = W[t-15]>>8
190 vpsrlq $6, %xmm4, %xmm2 # XMM2 = W[t-2]>>6
194 vpxor %xmm7, %xmm6, %xmm6 # XMM6 = W[t-15]>>1 ^ W[t-15]>>8
197 vpsrlq $7, %xmm5, %xmm8 # XMM8 = W[t-15]>>7
200 vpsllq $(64-61), %xmm4, %xmm3 # XMM3 = W[t-2]<<3
203 vpxor %xmm3, %xmm2, %xmm2 # XMM2 = W[t-2]>>6 ^ W[t-2]<<3
206 vpsllq $(64-1), %xmm5, %xmm9 # XMM9 = W[t-15]<<63
208 vpxor %xmm9, %xmm8, %xmm8 # XMM8 = W[t-15]>>7 ^ W[t-15]<<63
213 vpxor %xmm8, %xmm6, %xmm6 # XMM6 = W[t-15]>>1 ^ W[t-15]>>8 ^
214 # W[t-15]>>7 ^ W[t-15]<<63
217 vpsllq $(64-19), %xmm4, %xmm4 # XMM4 = W[t-2]<<25
220 vpxor %xmm4, %xmm0, %xmm0 # XMM0 = W[t-2]>>61 ^ W[t-2]>>19 ^
221 # W[t-2]<<25
223 vpxor %xmm2, %xmm0, %xmm0 # XMM0 = s1(W[t-2])
227 vpaddq W_t(idx), %xmm0, %xmm0 # XMM0 = s1(W[t-2]) + W[t-16]
229 vmovdqu W_t(idx), %xmm1 # XMM1 = W[t-7]
234 vpsllq $(64-8), %xmm5, %xmm5 # XMM5 = W[t-15]<<56
237 vpxor %xmm5, %xmm6, %xmm6 # XMM6 = s0(W[t-15])
239 vpaddq %xmm6, %xmm0, %xmm0 # XMM0 = s1(W[t-2]) + W[t-16] + s0(W[t-15])
241 vpaddq %xmm1, %xmm0, %xmm0 # XMM0 = W[t] = s1(W[t-2]) + W[t-7] +
242 # s0(W[t-15]) + W[t-16]
248 vmovdqa %xmm0, W_t(idx) # Store W[t]
249 vpaddq K_t(idx), %xmm0, %xmm0 # Compute W[t]+K[t]
250 vmovdqa %xmm0, WK_2(idx) # Store W[t]+K[t] for next rounds
297 mov DIGEST(2), c_64
305 .rept 80/2 + 1
306 # (80 rounds) / (2 rounds/iteration) + (1 iteration)
308 .if t < 2
309 # BSWAP 2 QWORDS
314 vpaddq K_t(t), %xmm0, %xmm0 # Compute W[t]+K[t]
317 # BSWAP 2 QWORDS# Compute 2 Rounds
320 SHA512_Round t-2 # Round t-2
322 vpaddq K_t(t), %xmm0, %xmm0 # Compute W[t]+K[t]
324 vmovdqa %xmm0, WK_2(t)# Store W[t]+K[t] into WK
326 # Schedule 2 QWORDS# Compute 2 Rounds
329 # Compute 2 Rounds
330 SHA512_Round t-2
333 t = t+2
339 add c_64, DIGEST(2)