hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/arm64/crypto/sha512-ce-core.S
....@@ -106,24 +106,18 @@
106106 * int blocks)
107107 */
108108 .text
109
-ENTRY(sha512_ce_transform)
110
- frame_push 3
111
-
112
- mov x19, x0
113
- mov x20, x1
114
- mov x21, x2
115
-
109
+SYM_FUNC_START(sha512_ce_transform)
116110 /* load state */
117
-0: ld1 {v8.2d-v11.2d}, [x19]
111
+ ld1 {v8.2d-v11.2d}, [x0]
118112
119113 /* load first 4 round constants */
120114 adr_l x3, .Lsha512_rcon
121115 ld1 {v20.2d-v23.2d}, [x3], #64
122116
123117 /* load input */
124
-1: ld1 {v12.2d-v15.2d}, [x20], #64
125
- ld1 {v16.2d-v19.2d}, [x20], #64
126
- sub w21, w21, #1
118
+0: ld1 {v12.2d-v15.2d}, [x1], #64
119
+ ld1 {v16.2d-v19.2d}, [x1], #64
120
+ sub w2, w2, #1
127121
128122 CPU_LE( rev64 v12.16b, v12.16b )
129123 CPU_LE( rev64 v13.16b, v13.16b )
....@@ -201,19 +195,12 @@
201195 add v10.2d, v10.2d, v2.2d
202196 add v11.2d, v11.2d, v3.2d
203197
198
+ cond_yield 3f, x4, x5
204199 /* handled all input blocks? */
205
- cbz w21, 3f
206
-
207
- if_will_cond_yield_neon
208
- st1 {v8.2d-v11.2d}, [x19]
209
- do_cond_yield_neon
210
- b 0b
211
- endif_yield_neon
212
-
213
- b 1b
200
+ cbnz w2, 0b
214201
215202 /* store new state */
216
-3: st1 {v8.2d-v11.2d}, [x19]
217
- frame_pop
203
+3: st1 {v8.2d-v11.2d}, [x0]
204
+ mov w0, w2
218205 ret
219
-ENDPROC(sha512_ce_transform)
206
+SYM_FUNC_END(sha512_ce_transform)