]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
(aes_decrypt): Use the AES_LOAD macro.
authorNiels Möller <nisse@lysator.liu.se>
Wed, 15 May 2002 09:16:45 +0000 (11:16 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Wed, 15 May 2002 09:16:45 +0000 (11:16 +0200)
Rev: src/nettle/x86/aes-decrypt.asm:1.3

x86/aes-decrypt.asm

index 63dd703c4f914db8cb897cbb3670dabd70a18bac..752975fd468709d0cab2ff688aa2b9dfee3e149c 100644 (file)
@@ -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