]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
[bsaes][aarch64] Move constant to .rodata section
authorAlexey Moksyakov <yavtuk@yandex.ru>
Wed, 22 Jan 2025 08:42:54 +0000 (11:42 +0300)
committerTomas Mraz <tomas@openssl.org>
Thu, 13 Feb 2025 08:51:37 +0000 (09:51 +0100)
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26509)

crypto/aes/asm/bsaes-armv8.pl

index 2e22cb9dd92adb60b52886dd2010d011e6aaaa83..d9446cddd2b851c18439647415a8911736d0cd72 100644 (file)
@@ -78,7 +78,8 @@ __END__
 //   other SIMD registers corrupted
 _bsaes_decrypt8:
         ldr     q8, [x9], #16
-        adr     x11, .LM0ISR
+        adrp    x11, .LM0ISR
+        add     x11, x11, #:lo12:.LM0ISR
         movi    v9.16b, #0x55
         ldr     q10, [x11], #16
         movi    v16.16b, #0x33
@@ -494,9 +495,10 @@ _bsaes_decrypt8:
         ret
 .size   _bsaes_decrypt8,.-_bsaes_decrypt8
 
-.type   _bsaes_const,%object
+.rodata
+.type   _bsaes_consts,%object
 .align  6
-_bsaes_const:
+_bsaes_consts:
 // InvShiftRows constants
 // Used in _bsaes_decrypt8, which assumes contiguity
 // .LM0ISR used with round 0 key
@@ -532,7 +534,9 @@ _bsaes_const:
 .quad   0x090d01050c000408, 0x03070b0f060a0e02
 
 .align  6
-.size   _bsaes_const,.-_bsaes_const
+.size   _bsaes_consts,.-_bsaes_consts
+
+.previous
 
 .type   _bsaes_encrypt8,%function
 .align  4
@@ -548,7 +552,8 @@ _bsaes_const:
 //   other SIMD registers corrupted
 _bsaes_encrypt8:
         ldr     q8, [x9], #16
-        adr     x11, .LM0SR
+        adrp    x11, .LM0SR
+        add     x11, x11, #:lo12:.LM0SR
         ldr     q9, [x11], #16
 _bsaes_encrypt8_alt:
         eor     v0.16b, v0.16b, v8.16b
@@ -952,9 +957,11 @@ _bsaes_encrypt8_alt:
 //   other SIMD registers corrupted
 _bsaes_key_convert:
 #ifdef __AARCH64EL__
-        adr     x11, .LM0_littleendian
+        adrp    x11, .LM0_littleendian
+        add     x11, x11, #:lo12:.LM0_littleendian
 #else
-        adr     x11, .LM0_bigendian
+        adrp    x11, .LM0_bigendian
+        add     x11, x11, #:lo12:.LM0_bigendian
 #endif
         ldr     q0, [x9], #16               // load round 0 key
         ldr     q1, [x11]                   // .LM0
@@ -998,7 +1005,8 @@ _bsaes_key_convert:
         // don't save last round key
 #ifdef __AARCH64EL__
         rev32   v15.16b, v15.16b
-        adr     x11, .LM0_bigendian
+        adrp    x11, .LM0_bigendian
+        add     x11, x11, #:lo12:.LM0_bigendian
 #endif
         ret
 .size   _bsaes_key_convert,.-_bsaes_key_convert