| .. | .. |
|---|
| 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) |
|---|