Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Brian Smith
nettle
Commits
411fea85
Commit
411fea85
authored
Feb 28, 2013
by
Niels Möller
Browse files
ARM assembly for ecc_192_modp.
parent
c36a8dee
Changes
2
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
411fea85
2013-02-28 Niels Möller <nisse@lysator.liu.se>
* armv7/ecc-192-modp.asm: New file. 2.5 time speedup over C
version.
2013-02-27 Niels Möller <nisse@lysator.liu.se>
* ecc-192.c: Check HAVE_NATIVE_ecc_192_modp, and use native
version if available.
(ecc_192_modp): Fixed carry handling bug in 32-bit version.
* x86_64/ecc-192-modp.asm: New file.
* x86_64/ecc-192-modp.asm: New file. 3.8 times speedup over C
version.
* configure.ac (OPT_ASM_SOURCES): New substituted variable.
(asm_replace_list, asm_optional_list): New variables. For files in
...
...
armv7/ecc-192-modp.asm
0 → 100644
View file @
411fea85
C
nettle
,
low
-
level
cryptographics
library
C
C
Copyright
(
C
)
2013
,
Niels
M
ö
ller
C
C
The
nettle
library
is
free
software
; you can redistribute it and/or modify
C
it
under
the
terms
of
the
GNU
Lesser
General
Public
License
as
published
by
C
the
Free
Software
Foundation
; either version 2.1 of the License, or (at your
C
option
)
any
later
version.
C
C
The
nettle
library
is
di
stributed
in
the
hope
that
it
will
be
useful
,
but
C
WITHOUT
ANY
WARRANTY
; without even the implied warranty of MERCHANTABILITY
C
or
FITNESS
FOR
A
PARTICULAR
PURPOSE.
See
the
GNU
Lesser
General
Public
C
License
for
more
details.
C
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
the
Free
Software
Foundation
,
Inc.
,
51
Franklin
Street
,
Fifth
Floor
,
Boston
,
C
MA
02111
-
1301
,
USA.
.file
"ecc-192-modp.asm"
.arm
define
(
<
HP
>
,
<
r0
>
)
C
Overlaps
unused
ecc
argument
define
(
<
RP
>
,
<
r1
>
)
define
(
<
T0
>
,
<
r2
>
)
define
(
<
T1
>
,
<
r3
>
)
define
(
<
T2
>
,
<
r4
>
)
define
(
<
T3
>
,
<
r5
>
)
define
(
<
T4
>
,
<
r6
>
)
define
(
<
T5
>
,
<
r7
>
)
define
(
<
T6
>
,
<
r8
>
)
define
(
<
T7
>
,
<
r10
>
)
define
(
<
H0
>
,
<
T0
>
)
C
Overlaps
T0
and
T1
define
(
<
H1
>
,
<
T1
>
)
define
(
<
C2
>
,
<
HP
>
)
define
(
<
C4
>
,
<
r12
>
)
C
ecc_192_modp
(
const
struct
ecc_curve
*
ecc
,
mp_limb_t
*
rp
)
.text
.align
2
PROLOGUE
(
nettle_ecc_192_modp
)
push
{
r4
,
r5
,
r6
,
r7
,
r8
,
r10
}
C
Reduce
two
word
s
at
a
time
add
HP
,
RP
,
#
48
add
RP
,
RP
,
#
8
ldmdb
HP
!
,
{
H0
,
H1
}
ldm
RP
,
{
T2
,
T3
,
T4
,
T5
,
T6
,
T7
}
mov
C4
,
#
0
adds
T4
,
T4
,
H0
adcs
T5
,
T5
,
H1
adcs
T6
,
T6
,
H0
adcs
T7
,
T7
,
H1
C
Need
to
add
carry
to
T2
and
T4
,
do
T4
later.
adc
C4
,
C4
,
#
0
ldmdb
HP
!
,
{
H0
,
H1
}
mov
C2
,
#
0
adcs
T2
,
T2
,
H0
adcs
T3
,
T3
,
H1
adcs
T4
,
T4
,
H0
adcs
T5
,
T5
,
H1
C
Need
to
add
carry
to
T0
and
T2
,
do
T2
later
adc
C2
,
C2
,
#
0
ldmdb
RP
!
,
{
T0
,
T1
}
adcs
T0
,
T0
,
T6
adcs
T1
,
T1
,
T7
adcs
T2
,
T2
,
T6
adcs
T3
,
T3
,
T7
adc
C4
,
C4
,
#
0
adds
T2
,
T2
,
C2
adcs
T3
,
T3
,
#
0
adcs
T4
,
T4
,
C4
adcs
T5
,
T5
,
#
0
mov
C2
,
#
0
adc
C2
,
C2
,
#
0
C
Add
in
final
carry
adcs
T0
,
T0
,
#
0
adcs
T1
,
T1
,
#
0
adcs
T2
,
T2
,
C2
adcs
T3
,
T3
,
#
0
adcs
T4
,
T4
,
#
0
adc
T5
,
T5
,
#
0
stm
RP
,
{
T0
,
T1
,
T2
,
T3
,
T4
,
T5
}
pop
{
r4
,
r5
,
r6
,
r7
,
r8
,
r10
}
bx
lr
EPILOGUE
(
nettle_ecc_192_modp
)
Write
Preview
Supports
Markdown
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