summaryrefslogtreecommitdiff
path: root/arm
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2013-05-16 10:32:45 +0200
committerNiels Möller <nisse@lysator.liu.se>2013-05-16 10:42:13 +0200
commit8b1d9263f5f26bf30c1678e9baa533365453f01d (patch)
tree1e68d8e25438e86d976fddec91ae19b24869122c /arm
parent64fbd2f00bf98d66788feff442e252da2194852c (diff)
downloadnettle-8b1d9263f5f26bf30c1678e9baa533365453f01d.tar.gz
arm/v6: Alignment tweaks to aes code.
Diffstat (limited to 'arm')
-rw-r--r--arm/v6/aes-decrypt-internal.asm7
-rw-r--r--arm/v6/aes-encrypt-internal.asm5
2 files changed, 8 insertions, 4 deletions
diff --git a/arm/v6/aes-decrypt-internal.asm b/arm/v6/aes-decrypt-internal.asm
index 22df3aa8..651636cc 100644
--- a/arm/v6/aes-decrypt-internal.asm
+++ b/arm/v6/aes-decrypt-internal.asm
@@ -50,13 +50,16 @@ define(<X3>, <r14>) C lr
C size_t length, uint8_t *dst,
C uint8_t *src)
.text
- .align 2
+ ALIGN(4)
PROLOGUE(_nettle_aes_decrypt)
teq LENGTH, #0
beq .Lend
ldr SRC, [sp]
push {r4,r5,r6,r7,r8,r10,r11,lr}
+ nop C For some mysterious reason, taking out this nop
+ C slows this function down on Cortex-A9.
+ ALIGN(16)
.Lblock_loop:
mov KEY, CTX
AES_LOAD(SRC,KEY,W0)
@@ -69,7 +72,7 @@ PROLOGUE(_nettle_aes_decrypt)
add TABLE, TABLE, #AES_TABLE0
b .Lentry
- .align 2
+ ALIGN(16)
.Lround_loop:
C Transform X -> W
AES_DECRYPT_ROUND(X0, X1, X2, X3, W0, W1, W2, W3, KEY)
diff --git a/arm/v6/aes-encrypt-internal.asm b/arm/v6/aes-encrypt-internal.asm
index 81eb6d04..15cf1bb0 100644
--- a/arm/v6/aes-encrypt-internal.asm
+++ b/arm/v6/aes-encrypt-internal.asm
@@ -52,13 +52,14 @@ define(<X3>, <r14>) C lr
C size_t length, uint8_t *dst,
C uint8_t *src)
.text
- .align 2
+ ALIGN(4)
PROLOGUE(_nettle_aes_encrypt)
teq LENGTH, #0
beq .Lend
ldr SRC, [sp]
push {r4,r5,r6,r7,r8,r10,r11,lr}
+ ALIGN(16)
.Lblock_loop:
mov KEY, CTX
AES_LOAD(SRC,KEY,W0)
@@ -71,7 +72,7 @@ PROLOGUE(_nettle_aes_encrypt)
add TABLE, TABLE, #AES_TABLE0
b .Lentry
- .align 2
+ ALIGN(16)
.Lround_loop:
C Transform X -> W
AES_ENCRYPT_ROUND(X0, X1, X2, X3, W0, W1, W2, W3, KEY)