Lines Matching +full:1 +full:- +full:16
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Core SHA-3 transform using v8.2 Crypto Extensions
15 .irp b,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
17 .set .Lv\b\().16b, \b
24 .inst 0xce000000 | .L\rd | (.L\rn << 5) | (.L\ra << 10) | (.L\rm << 16)
28 .inst 0xce608c00 | .L\rd | (.L\rn << 5) | (.L\rm << 16)
32 .inst 0xce200000 | .L\rd | (.L\rn << 5) | (.L\ra << 10) | (.L\rm << 16)
36 .inst 0xce800000 | .L\rd | (.L\rn << 5) | ((\imm6) << 10) | (.L\rm << 16)
43 * block_size is assumed to be one of 72 (SHA3-512), 104 (SHA3-384), 136
44 * (SHA3-256 and SHAKE256), 144 (SHA3-224), or 168 (SHAKE128).
50 ld1 { v0.1d- v3.1d}, [x0]
51 ld1 { v4.1d- v7.1d}, [x8], #32
52 ld1 { v8.1d-v11.1d}, [x8], #32
53 ld1 {v12.1d-v15.1d}, [x8], #32
54 ld1 {v16.1d-v19.1d}, [x8], #32
55 ld1 {v20.1d-v23.1d}, [x8], #32
56 ld1 {v24.1d}, [x8]
58 0: sub x2, x2, #1
63 ld1 {v25.8b-v28.8b}, [x1], #32
71 ld1 {v25.8b-v28.8b}, [x1], #32
77 b.eq 3f /* SHA3-512 (block_size=72)? */
79 ld1 {v25.8b-v28.8b}, [x1], #32
85 b.eq 3f /* SHA3-384 (block_size=104)? */
87 ld1 {v25.8b-v28.8b}, [x1], #32
93 b.lt 3f /* SHA3-256 or SHAKE256 (block_size=136)? */
94 b.eq 2f /* SHA3-224 (block_size=144)? */
97 ld1 {v25.8b-v28.8b}, [x1], #32
104 /* SHA3-224 (block_size=144) */
108 3: sub w8, w8, #1
110 eor3 v29.16b, v4.16b, v9.16b, v14.16b
111 eor3 v26.16b, v1.16b, v6.16b, v11.16b
112 eor3 v28.16b, v3.16b, v8.16b, v13.16b
113 eor3 v25.16b, v0.16b, v5.16b, v10.16b
114 eor3 v27.16b, v2.16b, v7.16b, v12.16b
115 eor3 v29.16b, v29.16b, v19.16b, v24.16b
116 eor3 v26.16b, v26.16b, v16.16b, v21.16b
117 eor3 v28.16b, v28.16b, v18.16b, v23.16b
118 eor3 v25.16b, v25.16b, v15.16b, v20.16b
119 eor3 v27.16b, v27.16b, v17.16b, v22.16b
124 rax1 v25.2d, v25.2d, v27.2d // bc[1]
127 eor v0.16b, v0.16b, v30.16b
128 xar v29.2d, v1.2d, v25.2d, (64 - 1)
129 xar v1.2d, v6.2d, v25.2d, (64 - 44)
130 xar v6.2d, v9.2d, v28.2d, (64 - 20)
131 xar v9.2d, v22.2d, v26.2d, (64 - 61)
132 xar v22.2d, v14.2d, v28.2d, (64 - 39)
133 xar v14.2d, v20.2d, v30.2d, (64 - 18)
134 xar v31.2d, v2.2d, v26.2d, (64 - 62)
135 xar v2.2d, v12.2d, v26.2d, (64 - 43)
136 xar v12.2d, v13.2d, v27.2d, (64 - 25)
137 xar v13.2d, v19.2d, v28.2d, (64 - 8)
138 xar v19.2d, v23.2d, v27.2d, (64 - 56)
139 xar v23.2d, v15.2d, v30.2d, (64 - 41)
140 xar v15.2d, v4.2d, v28.2d, (64 - 27)
141 xar v28.2d, v24.2d, v28.2d, (64 - 14)
142 xar v24.2d, v21.2d, v25.2d, (64 - 2)
143 xar v8.2d, v8.2d, v27.2d, (64 - 55)
144 xar v4.2d, v16.2d, v25.2d, (64 - 45)
145 xar v16.2d, v5.2d, v30.2d, (64 - 36)
146 xar v5.2d, v3.2d, v27.2d, (64 - 28)
147 xar v27.2d, v18.2d, v27.2d, (64 - 21)
148 xar v3.2d, v17.2d, v26.2d, (64 - 15)
149 xar v25.2d, v11.2d, v25.2d, (64 - 10)
150 xar v26.2d, v7.2d, v26.2d, (64 - 6)
151 xar v30.2d, v10.2d, v30.2d, (64 - 3)
153 bcax v20.16b, v31.16b, v22.16b, v8.16b
154 bcax v21.16b, v8.16b, v23.16b, v22.16b
155 bcax v22.16b, v22.16b, v24.16b, v23.16b
156 bcax v23.16b, v23.16b, v31.16b, v24.16b
157 bcax v24.16b, v24.16b, v8.16b, v31.16b
161 bcax v17.16b, v25.16b, v19.16b, v3.16b
162 bcax v18.16b, v3.16b, v15.16b, v19.16b
163 bcax v19.16b, v19.16b, v16.16b, v15.16b
164 bcax v15.16b, v15.16b, v25.16b, v16.16b
165 bcax v16.16b, v16.16b, v3.16b, v25.16b
167 bcax v10.16b, v29.16b, v12.16b, v26.16b
168 bcax v11.16b, v26.16b, v13.16b, v12.16b
169 bcax v12.16b, v12.16b, v14.16b, v13.16b
170 bcax v13.16b, v13.16b, v29.16b, v14.16b
171 bcax v14.16b, v14.16b, v26.16b, v29.16b
173 bcax v7.16b, v30.16b, v9.16b, v4.16b
174 bcax v8.16b, v4.16b, v5.16b, v9.16b
175 bcax v9.16b, v9.16b, v6.16b, v5.16b
176 bcax v5.16b, v5.16b, v30.16b, v6.16b
177 bcax v6.16b, v6.16b, v4.16b, v30.16b
179 bcax v3.16b, v27.16b, v0.16b, v28.16b
180 bcax v4.16b, v28.16b, v1.16b, v0.16b
181 bcax v0.16b, v0.16b, v2.16b, v1.16b
182 bcax v1.16b, v1.16b, v27.16b, v2.16b
183 bcax v2.16b, v2.16b, v28.16b, v27.16b
185 eor v0.16b, v0.16b, v31.16b
192 4: st1 { v0.1d- v3.1d}, [x0], #32
193 st1 { v4.1d- v7.1d}, [x0], #32
194 st1 { v8.1d-v11.1d}, [x0], #32
195 st1 {v12.1d-v15.1d}, [x0], #32
196 st1 {v16.1d-v19.1d}, [x0], #32
197 st1 {v20.1d-v23.1d}, [x0], #32
198 st1 {v24.1d}, [x0]