Lines Matching +full:16 +full:v
41 // The generated code of this file depends on the following RISC-V extensions:
43 // - RISC-V Vector ('V') with VLEN >= 128
44 // - RISC-V Vector AES block cipher extension ('Zvkned')
60 vle32.v v16, (INP)
62 vse32.v v16, (OUTP)
76 // const u8 in[16], u8 out[16]);
93 vle32.v v16, (INP)
95 vse32.v v16, (OUTP)
115 // |len| must be nonzero and a multiple of 16 (AES_BLOCK_SIZE).
126 vle32.v v16, (IVP) // Load IV
128 vle32.v v17, (INP) // Load plaintext block
131 vse32.v v16, (OUTP) // Store ciphertext block
132 addi INP, INP, 16
133 addi OUTP, OUTP, 16
134 addi LEN, LEN, -16
137 vse32.v v16, (IVP) // Store next IV
143 vle32.v v16, (IVP) // Load IV
146 vle32.v v20, (INP) // Load ciphertext blocks
152 vse32.v v20, (OUTP) // Store plaintext blocks
153 vmv.v.v v16, v24 // Next "IV" is last ciphertext block
161 vse32.v v16, (IVP) // Store next IV
166 // const u8 *in, u8 *out, size_t len, u8 iv[16]);
168 // |len| must be nonzero and a multiple of 16 (AES_BLOCK_SIZE).
194 li t0, 16
197 vse32.v v16, (OUTP) // Store ciphertext block
198 addi OUTP, OUTP, 16
200 vle32.v v17, (INP) // Load plaintext block
203 addi INP, INP, 16
204 addi LEN, LEN, -16
216 // is 1 <= LEN <= 16. If there are only 2 blocks, C[n-2] means the IV.
221 addi t0, OUTP, 16 // Get pointer to where C[n] should go
223 vle8.v v17, (INP) // Load P[n]
224 vse8.v v16, (t0) // Store C[n]
229 vse32.v v16, (OUTP) // Store C[n-1] (or C[n] in single-block case)
234 #define LEN_MOD16 t5 // Length of message in bytes mod 16
244 vmv.v.v v28, v16 // IV
249 vle32.v v28, (t0)
260 vle32.v v20, (INP) // Load next set of ciphertext blocks
261 vmv.v.v v24, v16 // Get IV or last ciphertext block of prev set
266 vse32.v v24, (OUTP) // Store this set of plaintext blocks
275 addi t0, OUTP, -16 // Get pointer to last full plaintext block
279 li t1, 16
292 vle32.v v24, (t1) // Decrypt(C[n-1]) ^ C[n-2]
293 vse32.v v20, (t1) // Store P[n-1]
300 // P[n-1] = Decrypt(C[n] || Decrypt(C[n-1])[LEN_MOD16..16]) ^ C[n-2]
304 vmv.v.v v16, v20 // v16 = Decrypt(C[n-1])
306 vle8.v v20, (INP) // v20 = C[n] || Decrypt(C[n-1])[LEN_MOD16..16]
308 vse8.v v16, (OUTP) // Store P[n]
310 aes_decrypt v20, \keylen // v20 = Decrypt(C[n] || Decrypt(C[n-1])[LEN_MOD16..16])
313 vse32.v v20, (t0) // Store last full plaintext block
319 vle32.v v16, (IVP) // Load IV
328 // const u8 iv[16], bool enc);