.. | .. |
---|
106 | 106 | * int blocks) |
---|
107 | 107 | */ |
---|
108 | 108 | .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) |
---|
116 | 110 | /* load state */ |
---|
117 | | -0: ld1 {v8.2d-v11.2d}, [x19] |
---|
| 111 | + ld1 {v8.2d-v11.2d}, [x0] |
---|
118 | 112 | |
---|
119 | 113 | /* load first 4 round constants */ |
---|
120 | 114 | adr_l x3, .Lsha512_rcon |
---|
121 | 115 | ld1 {v20.2d-v23.2d}, [x3], #64 |
---|
122 | 116 | |
---|
123 | 117 | /* 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 |
---|
127 | 121 | |
---|
128 | 122 | CPU_LE( rev64 v12.16b, v12.16b ) |
---|
129 | 123 | CPU_LE( rev64 v13.16b, v13.16b ) |
---|
.. | .. |
---|
201 | 195 | add v10.2d, v10.2d, v2.2d |
---|
202 | 196 | add v11.2d, v11.2d, v3.2d |
---|
203 | 197 | |
---|
| 198 | + cond_yield 3f, x4, x5 |
---|
204 | 199 | /* 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 |
---|
214 | 201 | |
---|
215 | 202 | /* 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 |
---|
218 | 205 | ret |
---|
219 | | -ENDPROC(sha512_ce_transform) |
---|
| 206 | +SYM_FUNC_END(sha512_ce_transform) |
---|