]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
(ROUND): Reordered sbox lookups.
authorNiels Möller <nisse@lysator.liu.se>
Fri, 1 Oct 2010 14:06:16 +0000 (16:06 +0200)
committerNiels Möller <nisse@lysator.liu.se>
Fri, 1 Oct 2010 14:06:16 +0000 (16:06 +0200)
Rev: nettle/x86_64/camellia-crypt-internal.asm:1.2

x86_64/camellia-crypt-internal.asm

index 19c21ea131194f02d3d972e09716c96b0583c29b..e940342ba33ec9b7562e00e8d1e4afcf33765f3c 100644 (file)
@@ -18,6 +18,12 @@ C along with the nettle library; see the file COPYING.LIB.  If not, write to
 C the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 C MA 02111-1307, USA.
 
+C Performance, cycles per block
+C
+C              Intel SU4100
+C                 C  asm
+C Camellia-128  415  347
+C Camellia-256  543  461
 
 C Register usage:
 
@@ -43,29 +49,35 @@ define(<SP4404>, <3072(TABLE,$1,4)>)
 
 C ROUND(x, y, key-offset)
 define(<ROUND>, <
+       C Byte 0,1
        movzbl  LREG($1), XREG(TMP)
        movl    SP1110(TMP), XREG(IR)
        movzbl  HREG($1), XREG(TMP)
        xorl    SP4404(TMP), XREG(IR)
-       ror     <$>16, $1
+       ror     <$>32, $1
 
+       C Byte 4,5
        movzbl  LREG($1), XREG(TMP)
-       xorl    SP3033(TMP), XREG(IR)
+       movl    SP4404(TMP), XREG(IL)
        movzbl  HREG($1), XREG(TMP)
-       xorl    SP0222(TMP), XREG(IR)
-       ror     <$>16, $1
+       xorl    SP3033(TMP), XREG(IL)
+       rol     <$>16, $1
 
+       C Byte 2,3
        movzbl  LREG($1), XREG(TMP)
-       movl    SP4404(TMP), XREG(IL)
+       xorl    SP3033(TMP), XREG(IR)
        movzbl  HREG($1), XREG(TMP)
-       xorl    SP3033(TMP), XREG(IL)
-       ror     <$>16, $1
+       xorl    SP0222(TMP), XREG(IR)
+       ror     <$>32, $1
 
+       C Byte 6,7
        movzbl  LREG($1), XREG(TMP)
        xorl    SP0222(TMP), XREG(IL)
        movzbl  HREG($1), XREG(TMP)
        xorl    SP1110(TMP), XREG(IL)
        ror     <$>16, $1
+
+       C 76543210
        
        xorl    XREG(IL), XREG(IR)
        rorl    <$>8, XREG(IL)