summaryrefslogtreecommitdiff
path: root/x86_64
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2015-01-13 10:01:04 +0100
committerNiels Möller <nisse@lysator.liu.se>2015-01-13 10:01:04 +0100
commit23b9cf2215b990314291edcad8c539cae6bfff54 (patch)
tree613cf181f8128d9f82af1093b67d5a1ddee7e45e /x86_64
parent2185ed0d8d707b310fc289fb4ce263157480b615 (diff)
downloadnettle-23b9cf2215b990314291edcad8c539cae6bfff54.tar.gz
Use explicit .byte sequences when assembling aes instructions.
Diffstat (limited to 'x86_64')
-rw-r--r--x86_64/aesni/aes-decrypt-internal.asm10
-rw-r--r--x86_64/aesni/aes-encrypt-internal.asm10
2 files changed, 14 insertions, 6 deletions
diff --git a/x86_64/aesni/aes-decrypt-internal.asm b/x86_64/aesni/aes-decrypt-internal.asm
index 1dfbcb4c..412e8d31 100644
--- a/x86_64/aesni/aes-decrypt-internal.asm
+++ b/x86_64/aesni/aes-decrypt-internal.asm
@@ -44,7 +44,11 @@ define(<CNT>, <%rdx>)
C Subkey pointer
define(<KEY>, <%rax>)
- .arch bdver2
+dnl aesdec %xmm1, %xmm0
+define(<AESDEC>, <.byte 0x66, 0x0f, 0x38, 0xde, 0xc1>)
+dnl aesdeclast %xmm1, %xmm0
+define(<AESDECLAST>, <.byte 0x66, 0x0f, 0x38, 0xdf, 0xc1>)
+
.file "aes-decrypt-internal.asm"
C _aes_decrypt(unsigned rounds, const uint32_t *keys,
@@ -77,12 +81,12 @@ PROLOGUE(_nettle_aes_decrypt)
add $16, KEY
movups (KEY), %xmm1
- aesdec %xmm1, %xmm0
+ AESDEC C %xmm1, %xmm0
decl XREG(CNT)
jnz .Lround_loop
movups 16(KEY), %xmm1
- aesdeclast %xmm1, %xmm0
+ AESDECLAST C %xmm1, %xmm0
movups %xmm0, (DST)
add $16, SRC
diff --git a/x86_64/aesni/aes-encrypt-internal.asm b/x86_64/aesni/aes-encrypt-internal.asm
index ee925fe5..07f17b25 100644
--- a/x86_64/aesni/aes-encrypt-internal.asm
+++ b/x86_64/aesni/aes-encrypt-internal.asm
@@ -44,7 +44,11 @@ define(<CNT>, <%rdx>)
C Subkey pointer
define(<KEY>, <%rax>)
- .arch bdver2
+dnl aesenc %xmm1, %xmm0
+define(<AESENC>, <.byte 0x66, 0x0f, 0x38, 0xdc, 0xc1>)
+dnl aesenclast %xmm1, %xmm0
+define(<AESENCLAST>, <.byte 0x66, 0x0f, 0x38, 0xdd, 0xc1>)
+
.file "aes-encrypt-internal.asm"
C _aes_encrypt(unsigned rounds, const uint32_t *keys,
@@ -77,12 +81,12 @@ PROLOGUE(_nettle_aes_encrypt)
add $16, KEY
movups (KEY), %xmm1
- aesenc %xmm1, %xmm0
+ AESENC C %xmm1, %xmm0
decl XREG(CNT)
jnz .Lround_loop
movups 16(KEY), %xmm1
- aesenclast %xmm1, %xmm0
+ AESENCLAST C %xmm1, %xmm0
movups %xmm0, (DST)
add $16, SRC