Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
nettle
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
5
Merge Requests
5
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Nettle
nettle
Commits
2ce34813
Commit
2ce34813
authored
Jun 30, 2011
by
Niels Möller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Include serpent.m4. Deleted a redundant label.
Rev: nettle/x86_64/serpent-encrypt.asm:1.5
parent
7e959faf
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
90 deletions
+6
-90
x86_64/serpent-encrypt.asm
x86_64/serpent-encrypt.asm
+6
-90
No files found.
x86_64/serpent-encrypt.asm
View file @
2ce34813
...
@@ -16,7 +16,9 @@ C You should have received a copy of the GNU Lesser General Public License
...
@@ -16,7 +16,9 @@ C You should have received a copy of the GNU Lesser General Public License
C
al
ong
with
the
nettle
library
; see the file COPYING.LIB. If not, write to
C
al
ong
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
the
Free
Software
Foundation
,
Inc.
,
59
Temple
Place
-
Suite
330
,
Boston
,
C
MA
02111
-
1307
,
USA.
C
MA
02111
-
1307
,
USA.
include_src
(
<
x86_64
/
serpent.m4
>
)
C
Register
usage
:
C
Register
usage
:
C
Si
ngle
bl
ock
serpent
state
,
two
copies
C
Si
ngle
bl
ock
serpent
state
,
two
copies
...
@@ -519,14 +521,6 @@ define(<WSBOX7>, <
...
@@ -519,14 +521,6 @@ define(<WSBOX7>, <
pxor
$
3
,
$
5
pxor
$
3
,
$
5
>)
>)
C
WROL
(
count
,
w
)
define
(
<
WROL
>
,
<
movdqa
$
2
,
T0
pslld
<
$
>
$
1
,
$
2
psrld
<
$
>
eval
(
32
-
$
1
),
T0
por
T0
,
$
2
>)
C
WLT
(
x0
,
x1
,
x2
,
x3
)
C
WLT
(
x0
,
x1
,
x2
,
x3
)
define
(
<
WLT
>
,
<
define
(
<
WLT
>
,
<
WROL
(
13
,
$
1
)
WROL
(
13
,
$
1
)
...
@@ -549,81 +543,6 @@ define(<WLT>, <
...
@@ -549,81 +543,6 @@ define(<WLT>, <
WROL
(
22
,
$
3
)
WROL
(
22
,
$
3
)
>)
>)
C
Note
:
Di
agrams
use
little
-
endian
representation
,
with
least
C
si
gnificant
word
to
the
left.
C
Transpose
values
from
:
C
+----+----+----+----+
C
x0
:
|
a0
|
a1
|
a2
|
a3
|
C
x1
:
|
b0
|
b1
|
b2
|
b3
|
C
x2
:
|
c0
|
c1
|
c2
|
c3
|
C
x3
:
|
d0
|
d1
|
d2
|
d3
|
C
+----+----+----+----+
C
To
:
C
+----+----+----+----+
C
x0
:
|
a0
|
b0
|
c0
|
d0
|
C
x1
:
|
a1
|
b1
|
c1
|
d1
|
C
x2
:
|
a2
|
b2
|
c2
|
d2
|
C
x3
:
|
a3
|
b3
|
c3
|
d3
|
C
+----+----+----+----+
define
(
<
WTRANSPOSE
>
,
<
movdqa
$
1
,
T0
punpcklqdq
$
3
,
T0
C
|
a0
a1
c0
c1
|
punpckhqdq
$
3
,
$
1
C
|
a2
a3
c2
c3
|
pshufd
<
$
>
0xd8
,
T0
,
T0
C
|
a0
c0
a1
c1
|
pshufd
<
$
>
0xd8
,
$
1
,
T1
C
|
a2
c2
a3
c3
|
movdqa
$
2
,
T2
punpcklqdq
$
4
,
T2
C
|
b0
b1
d0
11
|
punpckhqdq
$
4
,
$
2
C
|
b2
b3
d2
d3
|
pshufd
<
$
>
0xd8
,
T2
,
T2
C
|
b0
d0
b1
d1
|
pshufd
<
$
>
0xd8
,
$
2
,
T3
C
|
b2
d2
b3
d3
|
movdqa
T0
,
$
1
punpckldq
T2
,
$
1
C
|
a0
b0
c0
d0
|
movdqa
T0
,
$
2
punpckhdq
T2
,
$
2
C
|
a1
b1
c1
d1
|
movdqa
T1
,
$
3
punpckldq
T3
,
$
3
C
|
a2
b2
c2
d2
|
movdqa
T1
,
$
4
punpckhdq
T3
,
$
4
C
|
a3
b3
c3
d3
|
>)
C
Copy
subkeys
,
from
:
C
C
+----+----+----+----+
C
k0
:
|
s3
|
s2
|
s1
|
s0
|
C
+----+----+----+----+
C
To
:
C
+----+----+----+----+
C
k0
:
|
s0
|
s0
|
s0
|
s0
|
C
k1
:
|
s1
|
s1
|
s1
|
s1
|
C
k2
:
|
s2
|
s2
|
s2
|
s2
|
C
k3
:
|
s3
|
s3
|
s3
|
s3
|
C
+----+----+----+----+
dnl
define
(
<
WCOPY
>
,
<
dnl
pshufd
$
55
,
$
1
,
$
2
dnl
pshufd
$
aa
,
$
1
,
$
3
dnl
pshufd
$
ff
,
$
1
,
$
4
dnl
pshufd
$
00
,
$
1
,
$
1
dnl
>
)
C
FIXME
:
Arrange
16
-
byte
al
ignment
,
so
we
can
use
movaps?
define
(
<
WKEYXOR
>
,
<
movups
$
1
(
CTX
,
CNT
),
T0
pshufd
<
$
>
0x55
,
T0
,
T1
pshufd
<
$
>
0xaa
,
T0
,
T2
pxor
T1
,
$
3
pxor
T2
,
$
4
pshufd
<
$
>
0xff
,
T0
,
T1
pshufd
<
$
>
0x00
,
T0
,
T0
pxor
T1
,
$
5
pxor
T0
,
$
2
>)
.file
"
serpent
-
encrypt.asm
"
.file
"
serpent
-
encrypt.asm
"
C
serpent_encrypt
(
struct
serpent_context
*
ctx
,
C
serpent_encrypt
(
struct
serpent_context
*
ctx
,
...
@@ -648,7 +567,7 @@ PROLOGUE(nettle_serpent_encrypt)
...
@@ -648,7 +567,7 @@ PROLOGUE(nettle_serpent_encrypt)
lea
512
(
CTX
),
CTX
lea
512
(
CTX
),
CTX
cmp
$
-
64
,
N
cmp
$
-
64
,
N
ja
.L
wide_end
ja
.L
block_loop
pcmpeqd
MINUS1
,
MINUS1
pcmpeqd
MINUS1
,
MINUS1
...
@@ -700,7 +619,7 @@ PROLOGUE(nettle_serpent_encrypt)
...
@@ -700,7 +619,7 @@ PROLOGUE(nettle_serpent_encrypt)
add
$
128
,
CNT
add
$
128
,
CNT
jnz
.Lwround_loop
jnz
.Lwround_loop
C
FIXME
CNT
known
to
be
zero
,
no
index
register
needed
C
FIXME
:
CNT
known
to
be
zero
,
no
index
register
needed
WKEYXOR
(,
X0
,
X1
,
X2
,
X3
)
WKEYXOR
(,
X0
,
X1
,
X2
,
X3
)
WTRANSPOSE
(
X0
,
X1
,
X2
,
X3
)
WTRANSPOSE
(
X0
,
X1
,
X2
,
X3
)
...
@@ -717,13 +636,10 @@ PROLOGUE(nettle_serpent_encrypt)
...
@@ -717,13 +636,10 @@ PROLOGUE(nettle_serpent_encrypt)
cmp
$
-
64
,
N
cmp
$
-
64
,
N
jbe
.Lwblock_loop
jbe
.Lwblock_loop
.Lwide_end:
C
The
si
ngle
-
bl
ock
loop
here
is
slightly
slower
than
the
double
-
bl
ock
C
The
si
ngle
-
bl
ock
loop
here
is
slightly
slower
than
the
double
-
bl
ock
C
loop
in
serpent
-
encrypt.c.
C
loop
in
serpent
-
encrypt.c.
C
FIXME
:
Should
use
non
-
ss
e2
code
only
if
we
have
a
sngle
bl
ock
left.
C
FIXME
:
Should
use
non
-
ss
e2
code
only
if
we
have
a
s
i
ngle
bl
ock
left.
C
With
two
or
three
bl
ocks
,
it
should
be
better
to
do
them
in
C
With
two
or
three
bl
ocks
,
it
should
be
better
to
do
them
in
C
parallell.
C
parallell.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment