AArch64 assembly pack: authenticate return addresses.
[openssl.git] / crypto / aes / asm / vpaes-armv8.pl
index 5131e13..5758133 100755 (executable)
@@ -255,6 +255,7 @@ _vpaes_encrypt_core:
 .type  vpaes_encrypt,%function
 .align 4
 vpaes_encrypt:
+       .inst   0xd503233f                      // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
 
@@ -264,6 +265,7 @@ vpaes_encrypt:
        st1     {v0.16b}, [$out]
 
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf                      // autiasp
        ret
 .size  vpaes_encrypt,.-vpaes_encrypt
 
@@ -486,6 +488,7 @@ _vpaes_decrypt_core:
 .type  vpaes_decrypt,%function
 .align 4
 vpaes_decrypt:
+       .inst   0xd503233f                      // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
 
@@ -495,6 +498,7 @@ vpaes_decrypt:
        st1     {v0.16b}, [$out]
 
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf                      // autiasp
        ret
 .size  vpaes_decrypt,.-vpaes_decrypt
 
@@ -665,6 +669,7 @@ _vpaes_key_preheat:
 .type  _vpaes_schedule_core,%function
 .align 4
 _vpaes_schedule_core:
+       .inst   0xd503233f                      // paciasp
        stp     x29, x30, [sp,#-16]!
        add     x29,sp,#0
 
@@ -829,6 +834,7 @@ _vpaes_schedule_core:
        eor     v6.16b, v6.16b, v6.16b          // vpxor        %xmm6,  %xmm6,  %xmm6
        eor     v7.16b, v7.16b, v7.16b          // vpxor        %xmm7,  %xmm7,  %xmm7
        ldp     x29, x30, [sp],#16
+       .inst   0xd50323bf                      // autiasp
        ret
 .size  _vpaes_schedule_core,.-_vpaes_schedule_core
 
@@ -1041,6 +1047,7 @@ _vpaes_schedule_mangle:
 .type  vpaes_set_encrypt_key,%function
 .align 4
 vpaes_set_encrypt_key:
+       .inst   0xd503233f              // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
        stp     d8,d9,[sp,#-16]!        // ABI spec says so
@@ -1056,6 +1063,7 @@ vpaes_set_encrypt_key:
 
        ldp     d8,d9,[sp],#16
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf              // autiasp
        ret
 .size  vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
 
@@ -1063,6 +1071,7 @@ vpaes_set_encrypt_key:
 .type  vpaes_set_decrypt_key,%function
 .align 4
 vpaes_set_decrypt_key:
+       .inst   0xd503233f              // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
        stp     d8,d9,[sp,#-16]!        // ABI spec says so
@@ -1082,6 +1091,7 @@ vpaes_set_decrypt_key:
 
        ldp     d8,d9,[sp],#16
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf              // autiasp
        ret
 .size  vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
 ___
@@ -1098,6 +1108,7 @@ vpaes_cbc_encrypt:
        cmp     w5, #0                  // check direction
        b.eq    vpaes_cbc_decrypt
 
+       .inst   0xd503233f              // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
 
@@ -1120,6 +1131,7 @@ vpaes_cbc_encrypt:
        st1     {v0.16b}, [$ivec]       // write ivec
 
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf              // autiasp
 .Lcbc_abort:
        ret
 .size  vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
@@ -1127,6 +1139,7 @@ vpaes_cbc_encrypt:
 .type  vpaes_cbc_decrypt,%function
 .align 4
 vpaes_cbc_decrypt:
+       .inst   0xd503233f              // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
        stp     d8,d9,[sp,#-16]!        // ABI spec says so
@@ -1168,6 +1181,7 @@ vpaes_cbc_decrypt:
        ldp     d10,d11,[sp],#16
        ldp     d8,d9,[sp],#16
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf              // autiasp
        ret
 .size  vpaes_cbc_decrypt,.-vpaes_cbc_decrypt
 ___
@@ -1177,6 +1191,7 @@ $code.=<<___;
 .type  vpaes_ecb_encrypt,%function
 .align 4
 vpaes_ecb_encrypt:
+       .inst   0xd503233f              // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
        stp     d8,d9,[sp,#-16]!        // ABI spec says so
@@ -1210,6 +1225,7 @@ vpaes_ecb_encrypt:
        ldp     d10,d11,[sp],#16
        ldp     d8,d9,[sp],#16
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf              // autiasp
        ret
 .size  vpaes_ecb_encrypt,.-vpaes_ecb_encrypt
 
@@ -1217,6 +1233,7 @@ vpaes_ecb_encrypt:
 .type  vpaes_ecb_decrypt,%function
 .align 4
 vpaes_ecb_decrypt:
+       .inst   0xd503233f              // paciasp
        stp     x29,x30,[sp,#-16]!
        add     x29,sp,#0
        stp     d8,d9,[sp,#-16]!        // ABI spec says so
@@ -1250,6 +1267,7 @@ vpaes_ecb_decrypt:
        ldp     d10,d11,[sp],#16
        ldp     d8,d9,[sp],#16
        ldp     x29,x30,[sp],#16
+       .inst   0xd50323bf              // autiasp
        ret
 .size  vpaes_ecb_decrypt,.-vpaes_ecb_decrypt
 ___