summaryrefslogtreecommitdiff
path: root/x86
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2002-05-15 11:16:45 +0200
committerNiels Möller <nisse@lysator.liu.se>2002-05-15 11:16:45 +0200
commit27e90cc8d5b030e213aa544b69e0840edf3b6c6b (patch)
tree4b0fe685b439a9861993049032152e15dd13ad42 /x86
parent934c16289064b25600ecef391da7a5311268a6b7 (diff)
downloadnettle-27e90cc8d5b030e213aa544b69e0840edf3b6c6b.tar.gz
(aes_decrypt): Use the AES_LOAD macro.
Rev: src/nettle/x86/aes-decrypt.asm:1.3
Diffstat (limited to 'x86')
-rw-r--r--x86/aes-decrypt.asm35
1 files changed, 20 insertions, 15 deletions
diff --git a/x86/aes-decrypt.asm b/x86/aes-decrypt.asm
index 63dd703c..752975fd 100644
--- a/x86/aes-decrypt.asm
+++ b/x86/aes-decrypt.asm
@@ -22,11 +22,12 @@ C MA 02111-1307, USA.
C aes_decrypt(struct aes_context *ctx,
C unsigned length, uint8_t *dst,
C uint8_t *src)
+ .text
.align 16
-.globl aes_decrypt
+ .globl aes_decrypt
.type aes_decrypt,@function
aes_decrypt:
- C // save all registers that need to be saved
+ C save all registers that need to be saved
pushl %ebx C 16(%esp)
pushl %ebp C 12(%esp)
pushl %esi C 8(%esp)
@@ -38,24 +39,28 @@ aes_decrypt:
C src = 32(%esp)
movl 24(%esp), %ebp
- C What's the right way to set the flags?
- addl $0, %ebp
+ testl %ebp,%ebp
jz .Ldecrypt_end
.Ldecrypt_block_loop:
- movl 32(%esp),%esi C address of ciphertext
- movl (%esi),%eax C load ciphertext into registers
- movl 4(%esi),%ebx
- movl 8(%esi),%ecx
- movl 12(%esi),%edx
-
+ movl 20(%esp),%esi C address of context struct ctx
+ movl 32(%esp),%ebp C address of plaintext
+ AES_LOAD(%esi, %ebp)
addl $16, 32(%esp) C Increment src pointer
- movl 20(%esp),%esi C address of context struct ctx
- xorl (%esi),%eax C add first key to ciphertext
- xorl 4(%esi),%ebx
- xorl 8(%esi),%ecx
- xorl 12(%esi),%edx
+C movl 32(%esp),%esi C address of ciphertext
+C movl (%esi),%eax C load ciphertext into registers
+C movl 4(%esi),%ebx
+C movl 8(%esi),%ecx
+C movl 12(%esi),%edx
+C
+C addl $16, 32(%esp) C Increment src pointer
+C
+C movl 20(%esp),%esi C address of context struct ctx
+C xorl (%esi),%eax C add first key to ciphertext
+C xorl 4(%esi),%ebx
+C xorl 8(%esi),%ecx
+C xorl 12(%esi),%edx
movl AES_NROUNDS (%esi),%ebp C get number of rounds to do from struct
C shll $4,%ebp
C leal 240(%esi, %ebp),%esi