Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: linux-arm/crypto/aes/aesv8-armx32.S

Issue 2569253003: BoringSSL: Roll generated files forward. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « linux-aarch64/crypto/modes/ghashv8-armx64.S ('k') | linux-arm/crypto/aes/bsaes-armv7.S » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #if defined(__arm__) 1 #if defined(__arm__)
2 #include <openssl/arm_arch.h> 2 #include <openssl/arm_arch.h>
3 3
4 #if __ARM_MAX_ARCH__>=7 4 #if __ARM_MAX_ARCH__>=7
5 .text 5 .text
6 .arch armv7-a 6 .arch armv7-a
7 .fpu neon 7 .fpu neon
8 .code 32 8 .code 32
9 .align 5 9 .align 5
10 .Lrcon: 10 .Lrcon:
11 .long 0x01,0x01,0x01,0x01 11 .long 0x01,0x01,0x01,0x01
12 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d @ rotate-n-splat 12 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d @ rotate-n-splat
13 .long 0x1b,0x1b,0x1b,0x1b 13 .long 0x1b,0x1b,0x1b,0x1b
14 14
15 .globl» aes_v8_set_encrypt_key 15 .globl» aes_hw_set_encrypt_key
16 .hidden»aes_v8_set_encrypt_key 16 .hidden»aes_hw_set_encrypt_key
17 .type» aes_v8_set_encrypt_key,%function 17 .type» aes_hw_set_encrypt_key,%function
18 .align 5 18 .align 5
19 aes_v8_set_encrypt_key: 19 aes_hw_set_encrypt_key:
20 .Lenc_key: 20 .Lenc_key:
21 mov r3,#-1 21 mov r3,#-1
22 cmp r0,#0 22 cmp r0,#0
23 beq .Lenc_key_abort 23 beq .Lenc_key_abort
24 cmp r2,#0 24 cmp r2,#0
25 beq .Lenc_key_abort 25 beq .Lenc_key_abort
26 mov r3,#-2 26 mov r3,#-2
27 cmp r1,#128 27 cmp r1,#128
28 blt .Lenc_key_abort 28 blt .Lenc_key_abort
29 cmp r1,#256 29 cmp r1,#256
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 b .Loop256 174 b .Loop256
175 175
176 .Ldone: 176 .Ldone:
177 str r12,[r2] 177 str r12,[r2]
178 mov r3,#0 178 mov r3,#0
179 179
180 .Lenc_key_abort: 180 .Lenc_key_abort:
181 mov r0,r3 @ return value 181 mov r0,r3 @ return value
182 182
183 bx lr 183 bx lr
184 .size» aes_v8_set_encrypt_key,.-aes_v8_set_encrypt_key 184 .size» aes_hw_set_encrypt_key,.-aes_hw_set_encrypt_key
185 185
186 .globl» aes_v8_set_decrypt_key 186 .globl» aes_hw_set_decrypt_key
187 .hidden»aes_v8_set_decrypt_key 187 .hidden»aes_hw_set_decrypt_key
188 .type» aes_v8_set_decrypt_key,%function 188 .type» aes_hw_set_decrypt_key,%function
189 .align 5 189 .align 5
190 aes_v8_set_decrypt_key: 190 aes_hw_set_decrypt_key:
191 stmdb sp!,{r4,lr} 191 stmdb sp!,{r4,lr}
192 bl .Lenc_key 192 bl .Lenc_key
193 193
194 cmp r0,#0 194 cmp r0,#0
195 bne .Ldec_key_abort 195 bne .Ldec_key_abort
196 196
197 sub r2,r2,#240 @ restore original r2 197 sub r2,r2,#240 @ restore original r2
198 mov r4,#-16 198 mov r4,#-16
199 add r0,r2,r12,lsl#4 @ end of key schedule 199 add r0,r2,r12,lsl#4 @ end of key schedule
200 200
(...skipping 12 matching lines...) Expand all
213 cmp r0,r2 213 cmp r0,r2
214 bhi .Loop_imc 214 bhi .Loop_imc
215 215
216 vld1.32 {q0},[r2] 216 vld1.32 {q0},[r2]
217 .byte 0xc0,0x03,0xb0,0xf3 @ aesimc q0,q0 217 .byte 0xc0,0x03,0xb0,0xf3 @ aesimc q0,q0
218 vst1.32 {q0},[r0] 218 vst1.32 {q0},[r0]
219 219
220 eor r0,r0,r0 @ return value 220 eor r0,r0,r0 @ return value
221 .Ldec_key_abort: 221 .Ldec_key_abort:
222 ldmia sp!,{r4,pc} 222 ldmia sp!,{r4,pc}
223 .size» aes_v8_set_decrypt_key,.-aes_v8_set_decrypt_key 223 .size» aes_hw_set_decrypt_key,.-aes_hw_set_decrypt_key
224 .globl» aes_v8_encrypt 224 .globl» aes_hw_encrypt
225 .hidden»aes_v8_encrypt 225 .hidden»aes_hw_encrypt
226 .type» aes_v8_encrypt,%function 226 .type» aes_hw_encrypt,%function
227 .align 5 227 .align 5
228 aes_v8_encrypt: 228 aes_hw_encrypt:
229 ldr r3,[r2,#240] 229 ldr r3,[r2,#240]
230 vld1.32 {q0},[r2]! 230 vld1.32 {q0},[r2]!
231 vld1.8 {q2},[r0] 231 vld1.8 {q2},[r0]
232 sub r3,r3,#2 232 sub r3,r3,#2
233 vld1.32 {q1},[r2]! 233 vld1.32 {q1},[r2]!
234 234
235 .Loop_enc: 235 .Loop_enc:
236 .byte 0x00,0x43,0xb0,0xf3 @ aese q2,q0 236 .byte 0x00,0x43,0xb0,0xf3 @ aese q2,q0
237 .byte 0x84,0x43,0xb0,0xf3 @ aesmc q2,q2 237 .byte 0x84,0x43,0xb0,0xf3 @ aesmc q2,q2
238 vld1.32 {q0},[r2]! 238 vld1.32 {q0},[r2]!
239 subs r3,r3,#2 239 subs r3,r3,#2
240 .byte 0x02,0x43,0xb0,0xf3 @ aese q2,q1 240 .byte 0x02,0x43,0xb0,0xf3 @ aese q2,q1
241 .byte 0x84,0x43,0xb0,0xf3 @ aesmc q2,q2 241 .byte 0x84,0x43,0xb0,0xf3 @ aesmc q2,q2
242 vld1.32 {q1},[r2]! 242 vld1.32 {q1},[r2]!
243 bgt .Loop_enc 243 bgt .Loop_enc
244 244
245 .byte 0x00,0x43,0xb0,0xf3 @ aese q2,q0 245 .byte 0x00,0x43,0xb0,0xf3 @ aese q2,q0
246 .byte 0x84,0x43,0xb0,0xf3 @ aesmc q2,q2 246 .byte 0x84,0x43,0xb0,0xf3 @ aesmc q2,q2
247 vld1.32 {q0},[r2] 247 vld1.32 {q0},[r2]
248 .byte 0x02,0x43,0xb0,0xf3 @ aese q2,q1 248 .byte 0x02,0x43,0xb0,0xf3 @ aese q2,q1
249 veor q2,q2,q0 249 veor q2,q2,q0
250 250
251 vst1.8 {q2},[r1] 251 vst1.8 {q2},[r1]
252 bx lr 252 bx lr
253 .size» aes_v8_encrypt,.-aes_v8_encrypt 253 .size» aes_hw_encrypt,.-aes_hw_encrypt
254 .globl» aes_v8_decrypt 254 .globl» aes_hw_decrypt
255 .hidden»aes_v8_decrypt 255 .hidden»aes_hw_decrypt
256 .type» aes_v8_decrypt,%function 256 .type» aes_hw_decrypt,%function
257 .align 5 257 .align 5
258 aes_v8_decrypt: 258 aes_hw_decrypt:
259 ldr r3,[r2,#240] 259 ldr r3,[r2,#240]
260 vld1.32 {q0},[r2]! 260 vld1.32 {q0},[r2]!
261 vld1.8 {q2},[r0] 261 vld1.8 {q2},[r0]
262 sub r3,r3,#2 262 sub r3,r3,#2
263 vld1.32 {q1},[r2]! 263 vld1.32 {q1},[r2]!
264 264
265 .Loop_dec: 265 .Loop_dec:
266 .byte 0x40,0x43,0xb0,0xf3 @ aesd q2,q0 266 .byte 0x40,0x43,0xb0,0xf3 @ aesd q2,q0
267 .byte 0xc4,0x43,0xb0,0xf3 @ aesimc q2,q2 267 .byte 0xc4,0x43,0xb0,0xf3 @ aesimc q2,q2
268 vld1.32 {q0},[r2]! 268 vld1.32 {q0},[r2]!
269 subs r3,r3,#2 269 subs r3,r3,#2
270 .byte 0x42,0x43,0xb0,0xf3 @ aesd q2,q1 270 .byte 0x42,0x43,0xb0,0xf3 @ aesd q2,q1
271 .byte 0xc4,0x43,0xb0,0xf3 @ aesimc q2,q2 271 .byte 0xc4,0x43,0xb0,0xf3 @ aesimc q2,q2
272 vld1.32 {q1},[r2]! 272 vld1.32 {q1},[r2]!
273 bgt .Loop_dec 273 bgt .Loop_dec
274 274
275 .byte 0x40,0x43,0xb0,0xf3 @ aesd q2,q0 275 .byte 0x40,0x43,0xb0,0xf3 @ aesd q2,q0
276 .byte 0xc4,0x43,0xb0,0xf3 @ aesimc q2,q2 276 .byte 0xc4,0x43,0xb0,0xf3 @ aesimc q2,q2
277 vld1.32 {q0},[r2] 277 vld1.32 {q0},[r2]
278 .byte 0x42,0x43,0xb0,0xf3 @ aesd q2,q1 278 .byte 0x42,0x43,0xb0,0xf3 @ aesd q2,q1
279 veor q2,q2,q0 279 veor q2,q2,q0
280 280
281 vst1.8 {q2},[r1] 281 vst1.8 {q2},[r1]
282 bx lr 282 bx lr
283 .size» aes_v8_decrypt,.-aes_v8_decrypt 283 .size» aes_hw_decrypt,.-aes_hw_decrypt
284 .globl» aes_v8_cbc_encrypt 284 .globl» aes_hw_cbc_encrypt
285 .hidden»aes_v8_cbc_encrypt 285 .hidden»aes_hw_cbc_encrypt
286 .type» aes_v8_cbc_encrypt,%function 286 .type» aes_hw_cbc_encrypt,%function
287 .align 5 287 .align 5
288 aes_v8_cbc_encrypt: 288 aes_hw_cbc_encrypt:
289 mov ip,sp 289 mov ip,sp
290 stmdb sp!,{r4,r5,r6,r7,r8,lr} 290 stmdb sp!,{r4,r5,r6,r7,r8,lr}
291 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specificati on says so 291 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specificati on says so
292 ldmia ip,{r4,r5} @ load remaining args 292 ldmia ip,{r4,r5} @ load remaining args
293 subs r2,r2,#16 293 subs r2,r2,#16
294 mov r8,#16 294 mov r8,#16
295 blo .Lcbc_abort 295 blo .Lcbc_abort
296 moveq r8,#0 296 moveq r8,#0
297 297
298 cmp r5,#0 @ en- or decrypting? 298 cmp r5,#0 @ en- or decrypting?
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 .Lcbc_dec_one: 566 .Lcbc_dec_one:
567 veor q5,q5,q10 567 veor q5,q5,q10
568 vorr q6,q11,q11 568 vorr q6,q11,q11
569 vst1.8 {q5},[r1]! 569 vst1.8 {q5},[r1]!
570 570
571 .Lcbc_done: 571 .Lcbc_done:
572 vst1.8 {q6},[r4] 572 vst1.8 {q6},[r4]
573 .Lcbc_abort: 573 .Lcbc_abort:
574 vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} 574 vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15}
575 ldmia sp!,{r4,r5,r6,r7,r8,pc} 575 ldmia sp!,{r4,r5,r6,r7,r8,pc}
576 .size» aes_v8_cbc_encrypt,.-aes_v8_cbc_encrypt 576 .size» aes_hw_cbc_encrypt,.-aes_hw_cbc_encrypt
577 .globl» aes_v8_ctr32_encrypt_blocks 577 .globl» aes_hw_ctr32_encrypt_blocks
578 .hidden»aes_v8_ctr32_encrypt_blocks 578 .hidden»aes_hw_ctr32_encrypt_blocks
579 .type» aes_v8_ctr32_encrypt_blocks,%function 579 .type» aes_hw_ctr32_encrypt_blocks,%function
580 .align 5 580 .align 5
581 aes_v8_ctr32_encrypt_blocks: 581 aes_hw_ctr32_encrypt_blocks:
582 mov ip,sp 582 mov ip,sp
583 stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,lr} 583 stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,lr}
584 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specificati on says so 584 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specificati on says so
585 ldr r4, [ip] @ load remaining arg 585 ldr r4, [ip] @ load remaining arg
586 ldr r5,[r3,#240] 586 ldr r5,[r3,#240]
587 587
588 ldr r8, [r4, #12] 588 ldr r8, [r4, #12]
589 vld1.32 {q0},[r4] 589 vld1.32 {q0},[r4]
590 590
591 vld1.32 {q8,q9},[r3] @ load key schedule... 591 vld1.32 {q8,q9},[r3] @ load key schedule...
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 cmp r2,#1 750 cmp r2,#1
751 veor q2,q2,q0 751 veor q2,q2,q0
752 veor q3,q3,q1 752 veor q3,q3,q1
753 vst1.8 {q2},[r1]! 753 vst1.8 {q2},[r1]!
754 beq .Lctr32_done 754 beq .Lctr32_done
755 vst1.8 {q3},[r1] 755 vst1.8 {q3},[r1]
756 756
757 .Lctr32_done: 757 .Lctr32_done:
758 vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} 758 vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15}
759 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,pc} 759 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,pc}
760 .size» aes_v8_ctr32_encrypt_blocks,.-aes_v8_ctr32_encrypt_blocks 760 .size» aes_hw_ctr32_encrypt_blocks,.-aes_hw_ctr32_encrypt_blocks
761 #endif 761 #endif
762 #endif 762 #endif
OLDNEW
« no previous file with comments | « linux-aarch64/crypto/modes/ghashv8-armx64.S ('k') | linux-arm/crypto/aes/bsaes-armv7.S » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698