diff options
author | Niels Möller <nisse@lysator.liu.se> | 2013-05-16 10:32:45 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2013-05-16 10:42:13 +0200 |
commit | 8b1d9263f5f26bf30c1678e9baa533365453f01d (patch) | |
tree | 1e68d8e25438e86d976fddec91ae19b24869122c /arm | |
parent | 64fbd2f00bf98d66788feff442e252da2194852c (diff) | |
download | nettle-8b1d9263f5f26bf30c1678e9baa533365453f01d.tar.gz |
arm/v6: Alignment tweaks to aes code.
Diffstat (limited to 'arm')
-rw-r--r-- | arm/v6/aes-decrypt-internal.asm | 7 | ||||
-rw-r--r-- | arm/v6/aes-encrypt-internal.asm | 5 |
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) |