From 27e90cc8d5b030e213aa544b69e0840edf3b6c6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Wed, 15 May 2002 11:16:45 +0200
Subject: [PATCH] (aes_decrypt): Use the AES_LOAD macro.

Rev: src/nettle/x86/aes-decrypt.asm:1.3
---
 x86/aes-decrypt.asm | 35 ++++++++++++++++++++---------------
 1 file 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
-- 
GitLab