summaryrefslogtreecommitdiff
path: root/x86_64/camellia-crypt-internal.asm
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2010-10-01 16:06:16 +0200
committerNiels Möller <nisse@lysator.liu.se>2010-10-01 16:06:16 +0200
commit49f1e5079fdf6a93eca7f04a319c872156c4dfcc (patch)
tree40dbe1decd05bd1fdddc5bc36f7b91acabad135b /x86_64/camellia-crypt-internal.asm
parent0d6eef1a00832850962dc00345d10a507eeec7ef (diff)
downloadnettle-49f1e5079fdf6a93eca7f04a319c872156c4dfcc.tar.gz
(ROUND): Reordered sbox lookups.
Rev: nettle/x86_64/camellia-crypt-internal.asm:1.2
Diffstat (limited to 'x86_64/camellia-crypt-internal.asm')
-rw-r--r--x86_64/camellia-crypt-internal.asm26
1 files changed, 19 insertions, 7 deletions
diff --git a/x86_64/camellia-crypt-internal.asm b/x86_64/camellia-crypt-internal.asm
index 19c21ea1..e940342b 100644
--- a/x86_64/camellia-crypt-internal.asm
+++ b/x86_64/camellia-crypt-internal.asm
@@ -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)