AARCH64_VALIDATE_LINK_REGISTER
ret
.size vpaes_ecb_encrypt,.-vpaes_ecb_encrypt
-
-.globl vpaes_ecb_decrypt
-.type vpaes_ecb_decrypt,%function
-.align 4
-vpaes_ecb_decrypt:
- AARCH64_SIGN_LINK_REGISTER
- stp x29,x30,[sp,#-16]!
- add x29,sp,#0
- stp d8,d9,[sp,#-16]! // ABI spec says so
- stp d10,d11,[sp,#-16]!
- stp d12,d13,[sp,#-16]!
- stp d14,d15,[sp,#-16]!
-
- mov x17, $len
- mov x2, $key
- bl _vpaes_decrypt_preheat
- tst x17, #16
- b.eq .Lecb_dec_loop
-
- ld1 {v7.16b}, [$inp],#16
- bl _vpaes_encrypt_core
- st1 {v0.16b}, [$out],#16
- subs x17, x17, #16
- b.ls .Lecb_dec_done
-
-.align 4
-.Lecb_dec_loop:
- ld1 {v14.16b,v15.16b}, [$inp], #32
- bl _vpaes_decrypt_2x
- st1 {v0.16b,v1.16b}, [$out], #32
- subs x17, x17, #32
- b.hi .Lecb_dec_loop
-
-.Lecb_dec_done:
- ldp d14,d15,[sp],#16
- ldp d12,d13,[sp],#16
- ldp d10,d11,[sp],#16
- ldp d8,d9,[sp],#16
- ldp x29,x30,[sp],#16
- AARCH64_VALIDATE_LINK_REGISTER
- ret
-.size vpaes_ecb_decrypt,.-vpaes_ecb_decrypt
___
} }
print $code;