summaryrefslogtreecommitdiff
path: root/cipher/rijndael-arm.S
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2016-06-30 21:34:46 +0300
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2016-06-30 21:34:46 +0300
commita6158a01a4d81a5d862e1e0a60bfd6063443311d (patch)
tree8ef35a65240b5c4c74ef88aaad5f21e472ad77c0 /cipher/rijndael-arm.S
parenta09126242a51c4ea4564b0f70b808e4f27fe5a91 (diff)
downloadlibgcrypt-a6158a01a4d81a5d862e1e0a60bfd6063443311d.tar.gz
Avoid unaligned accesses with ARM ldm/stm instructions
* cipher/rijndael-arm.S: Remove __ARM_FEATURE_UNALIGNED ifdefs, always compile with unaligned load/store code paths. * cipher/sha512-arm.S: Ditto. -- Reported-by: Michael Plass <mfpnb@plass-family.net> Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher/rijndael-arm.S')
-rw-r--r--cipher/rijndael-arm.S12
1 files changed, 4 insertions, 8 deletions
diff --git a/cipher/rijndael-arm.S b/cipher/rijndael-arm.S
index 694369da..e3a91c29 100644
--- a/cipher/rijndael-arm.S
+++ b/cipher/rijndael-arm.S
@@ -225,7 +225,7 @@ _gcry_aes_arm_encrypt_block:
push {%r4-%r11, %ip, %lr};
/* read input block */
-#ifndef __ARM_FEATURE_UNALIGNED
+
/* test if src is unaligned */
tst %r2, #3;
beq 1f;
@@ -238,7 +238,6 @@ _gcry_aes_arm_encrypt_block:
b 2f;
.ltorg
1:
-#endif
/* aligned load */
ldm %r2, {RA, RB, RC, RD};
#ifndef __ARMEL__
@@ -277,7 +276,7 @@ _gcry_aes_arm_encrypt_block:
add %sp, #16;
/* store output block */
-#ifndef __ARM_FEATURE_UNALIGNED
+
/* test if dst is unaligned */
tst RT0, #3;
beq 1f;
@@ -290,7 +289,6 @@ _gcry_aes_arm_encrypt_block:
b 2f;
.ltorg
1:
-#endif
/* aligned store */
#ifndef __ARMEL__
rev RA, RA;
@@ -484,7 +482,7 @@ _gcry_aes_arm_decrypt_block:
push {%r4-%r11, %ip, %lr};
/* read input block */
-#ifndef __ARM_FEATURE_UNALIGNED
+
/* test if src is unaligned */
tst %r2, #3;
beq 1f;
@@ -497,7 +495,6 @@ _gcry_aes_arm_decrypt_block:
b 2f;
.ltorg
1:
-#endif
/* aligned load */
ldm %r2, {RA, RB, RC, RD};
#ifndef __ARMEL__
@@ -533,7 +530,7 @@ _gcry_aes_arm_decrypt_block:
add %sp, #16;
/* store output block */
-#ifndef __ARM_FEATURE_UNALIGNED
+
/* test if dst is unaligned */
tst RT0, #3;
beq 1f;
@@ -546,7 +543,6 @@ _gcry_aes_arm_decrypt_block:
b 2f;
.ltorg
1:
-#endif
/* aligned store */
#ifndef __ARMEL__
rev RA, RA;