Lines Matching +full:0 +full:x15

24  * similarly for row 'd'.  (brot, drot) start out as (0, 0) but we make it such
42 X15 .req r14
49 and \t1, \in, #0xff00
50 and \t2, \in, #0xff0000
127 __strd X8_X10, X9_X11, sp, 0
130 // quarterrounds: (x2, x6, x10, x14) and (x3, x7, x11, x15)
131 _halfround X2, X6, X8_X10, X14, X3, X7, X9_X11, X15
138 // quarterrounds: (x0, x5, x10, x15) and (x1, x6, x11, x12)
139 _halfround X0, X5, X8_X10, X15, X1, X6, X9_X11, X12
143 __ldrd X8_X10, X9_X11, sp, 0
150 .set brot, 0
151 .set drot, 0
160 // Stack: unused0-unused1 x10-x11 x0-x15 OUT IN LEN
161 // Registers contain x0-x9,x12-x15.
163 // Do the core ChaCha permutation to update x0-x15.
168 // Registers contain x0-x9,x12-x15.
169 // x4-x7 are rotated by 'brot'; x12-x15 are rotated by 'drot'.
171 // Free up some registers (r8-r12,r14) by pushing (x8-x9,x12-x15).
172 push {X8_X10, X9_X11, X12, X13, X14, X15}
192 // Stack: x8-x9 x12-x15 x10-x11 orig_x0-orig_x15 OUT IN LEN
194 // x4-x7 are rotated by 'brot'; x12-x15 are rotated by 'drot'.
226 // x8-x15
227 pop {r0-r7} // (x8-x9,x12-x15,x10-x11)
247 add r5, r11, r5, ror #drot // x15
253 eor r5, r5, r7 // x15
261 // Stack: x0-x15 OUT IN LEN
281 ldmia r14, {r10-r12,r14} // load x12-x15
293 // Stack: ks0-ks15 x8-x9 x12-x15 x10-x11 orig_x0-orig_x15 OUT IN LEN
295 // x4-x7 are rotated by 'brot'; x12-x15 are rotated by 'drot'.
318 // Save keystream for x8-x15
319 ldm r8, {r0-r7} // (x8-x9,x12-x15,x10-x11)
333 add r5, r11, r5, ror #drot // x15
337 // Stack: ks0-ks15 unused0-unused7 x0-x15 OUT IN LEN
390 cmp r2, #0 // len == 0?
398 // Push state x0-x15 onto stack.
402 ldm X12, {X12,X13,X14,X15}
403 push {X12,X13,X14,X15}
419 0: add sp, #76
423 b 0b
437 ldm r14, {r10-r12,r14} // load x12-x15
444 0: add sp, #16
446 // Fix up rotations of x12-x15
451 ror X15, X15, #drot
453 // Store (x0-x3,x12-x15) to 'out'
454 stm r4, {X0,X1,X2,X3,X12,X13,X14,X15}
459 b 0b