Lines Matching +full:risc +full:- +full:v
1 /* SPDX-License-Identifier: Apache-2.0 OR BSD-2-Clause */
3 // This file is dual-licensed, meaning that you can use it under your
40 // The generated code of this file depends on the following RISC-V extensions:
41 // - RV64I
42 // - RISC-V Vector ('V') with VLEN >= 128
43 // - RISC-V Vector SHA-2 Secure Hash extension ('Zvknhb')
44 // - RISC-V Vector Cryptography Bit-manipulation extension ('Zvkb')
70 // Do 4 rounds of SHA-512. w0 contains the current 4 message schedule words.
73 // computes 4 more message schedule words. w1-w3 contain the next 3 groups of 4
78 vle64.v VTMP, (K)
101 // message scheduling. There are 4 words, so an 8-bit mask suffices.
103 vmv.v.i MASK, 0x01
107 // is e8mf4. We use index-load with the i8 indices {40, 32, 8, 0},
108 // loaded using the 32-bit little endian value 0x00082028.
111 vmv.v.x INDICES, t0
114 vluxei8.v FEBA, (STATEP), INDICES
115 vluxei8.v HGDC, (STATEP_C), INDICES
119 addi NUM_BLOCKS, NUM_BLOCKS, -1
122 vmv.v.v PREV_FEBA, FEBA
123 vmv.v.v PREV_HGDC, HGDC
125 // Load the next 1024-bit message block and endian-swap each 64-bit word
126 vle64.v W0, (DATA)
127 vrev8.v W0, W0
129 vle64.v W1, (DATA)
130 vrev8.v W1, W1
132 vle64.v W2, (DATA)
133 vrev8.v W2, W2
135 vle64.v W3, (DATA)
136 vrev8.v W3, W3
139 // Do the 80 rounds of SHA-512.
154 vsuxei8.v FEBA, (STATEP), INDICES
155 vsuxei8.v HGDC, (STATEP_C), INDICES
203 .size K512, . - K512