Andy Polyakov
866e505e0d
sha/asm/sha512-armv8.pl: add NEON version of SHA256.
...
This provides up to 30% better performance on some of recent processors.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-11-11 13:48:16 +01:00
Andy Polyakov
413b6a8259
sha/asm/sha512-armv8.pl: adapt for kernel use.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-10-24 14:21:07 +02:00
Andy Polyakov
ace05265d2
x86_64 assembly pack: add Goldmont performance results.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-10-24 13:01:13 +02:00
David Benjamin
609b0852e4
Remove trailing whitespace from some files.
...
The prevailing style seems to not have trailing whitespace, but a few
lines do. This is mostly in the perlasm files, but a few C files got
them after the reformat. This is the result of:
find . -name '*.pl' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//'
find . -name '*.c' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//'
find . -name '*.h' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//'
Then bn_prime.h was excluded since this is a generated file.
Note mkerr.pl has some changes in a heredoc for some help output, but
other lines there lack trailing whitespace too.
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
2016-10-10 23:36:21 +01:00
Andy Polyakov
947716c187
MIPS assembly pack: adapt it for MIPS[32|64]R6.
...
MIPS[32|64]R6 is binary and source incompatible with previous MIPS ISA
specifications. Fortunately it's still possible to resolve differences
in source code with standard pre-processor and switching to trap-free
version of addition and subtraction instructions.
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-09-02 13:33:17 +02:00
Andy Polyakov
05ef4d1980
ARMv8 assembly pack: add Samsung Mongoose results.
...
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-08-16 12:47:49 +02:00
Andy Polyakov
7123aa81e9
sha/asm/sha1-x86_64.pl: fix crash in SHAEXT code on Windows.
...
RT#4530
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-08-11 13:39:57 +02:00
klemens
6025001707
spelling fixes, just comments and readme.
...
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1413 )
2016-08-05 19:07:30 -04:00
Rich Salz
b8a9af6881
Remove/rename some old files.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-06-01 11:29:57 -04:00
Andy Polyakov
cfe1d9929e
x86_64 assembly pack: tolerate spaces in source directory name.
...
[as it is now quoting $output is not required, but done just in case]
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-29 14:12:51 +02:00
Rich Salz
6aa36e8e5a
Add OpenSSL copyright to .pl files
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-21 08:23:39 -04:00
Andy Polyakov
c6cb8e3ca4
Alpha assembly pack: make it work on Linux.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-04 08:51:08 +02:00
Andy Polyakov
f7dc4a3bd7
MIPS assembly pack: fix MIPS64 assembler warnings.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-04 08:48:53 +02:00
Andy Polyakov
670ad0fbf6
s390x assembly pack: cache capability query results.
...
IBM argues that in certain scenarios capability query is really
expensive. At the same time it's asserted that query results can
be safely cached, because disabling CPACF is incompatible with
reboot-free operation.
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-04-25 11:53:45 +02:00
Andy Polyakov
20b88bb160
PPC assembly pack: remove branch hints.
...
As it turns out branch hints grew as kind of a misconception. In
addition their interpretation by GNU assembler is affected by
assembler flags and can end up with opposite meaning on different
processors. As we have to loose quite a lot on misinterprerations,
especially on newer processors, we just omit them altogether.
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-04-07 21:27:24 +02:00
Richard Levitte
a5aa63a456
Fix some assembler generating scripts for better unification
...
Some of these scripts would recognise an output parameter if it looks
like a file path. That works both in both the classic and new build
schemes. Some fo these scripts would only recognise it if it's a
basename (i.e. no directory component). Those need to be corrected,
as the output parameter in the new build scheme is more likely to
contain a directory component than not.
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-03-11 00:54:31 +01:00
Richard Levitte
e87e380a17
Unified - adapt the generation of sha assembler to use GENERATE
...
This gets rid of the BEGINRAW..ENDRAW sections in crypto/sha/build.info.
This also moves the assembler generating perl scripts to take the
output file name as last command line argument, where necessary.
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-03-09 11:09:26 +01:00
Andy Polyakov
eb77e8886d
SPARCv9 assembly pack: unify build rules and argument handling.
...
Make all scripts produce .S, make interpretation of $(CFLAGS)
pre-processor's responsibility, start accepting $(PERLASM_SCHEME).
[$(PERLASM_SCHEME) is redundant in this case, because there are
no deviataions between Solaris and Linux assemblers. This is
purely to unify .pl->.S handling across all targets.]
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-03-08 15:51:06 +01:00
David Benjamin
bdbd3aea59
Consistently use arm_arch.h constants in armcap assembly code.
...
Most of the assembly uses constants from arm_arch.h, but a few references to
ARMV7_NEON don't. Consistently use the macros everywhere.
Signed-off-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-03-02 12:57:28 +01:00
FdaSilvaYY
0d4fb84390
GH601: Various spelling fixes.
...
Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
2016-02-05 15:25:50 -05:00
Andy Polyakov
cfe670732b
sha/asm/sha256-armv4.pl: one of "universal" flags combination didn't compile.
...
(and unify table address calculation in ARMv8 code path).
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-12-21 13:41:47 +01:00
Andy Polyakov
b974943234
x86_64 assembly pack: tune clang version detection even further.
...
RT#4171
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-12-13 22:18:18 +01:00
Andy Polyakov
a285992763
ARMv4 assembly pack: allow Thumb2 even in iOS build,
...
and engage it in most modules.
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-12-07 12:06:06 +01:00
Andy Polyakov
76eba0d94b
x86_64 assembly pack: tune clang version detection.
...
RT#4142
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-11-23 16:00:06 +01:00
Alessandro Ghedini
d900a015b5
Fix typos
...
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-10-23 19:52:08 +02:00
Andy Polyakov
b7f5503fa6
Skylake performance results.
...
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-09-26 19:50:11 +02:00
Andy Polyakov
5e5ece561d
Allow ILP32 compilation in AArch64 assembly pack.
...
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-09-25 13:38:48 +02:00
Andy Polyakov
11208dcfb9
ARMv4 assembly pack: implement support for Thumb2.
...
As some of ARM processors, more specifically Cortex-Mx series, are
Thumb2-only, we need to support Thumb2-only builds even in assembly.
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-09-25 13:34:02 +02:00
Richard Levitte
053fa39af6
Conversion to UTF-8 where needed
...
This leaves behind files with names ending with '.iso-8859-1'. These
should be safe to remove. If something went wrong when re-encoding,
there will be some files with names ending with '.utf8' left behind.
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-07-14 01:10:01 +02:00
Andy Polyakov
313e6ec11f
Add assembly support for 32-bit iOS.
...
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-20 15:06:22 +02:00
Andy Polyakov
be5a87a1b0
sha/asm/sha*-armv8.pl: add Denver and X-Gene esults.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-02 09:50:06 +02:00
Andy Polyakov
94376cccb4
aes/asm/aesv8-armx.pl: optimize for Cortex-A5x.
...
ARM has optimized Cortex-A5x pipeline to favour pairs of complementary
AES instructions. While modified code improves performance of post-r0p0
Cortex-A53 performance by >40% (for CBC decrypt and CTR), it hurts
original r0p0. We favour later revisions, because one can't prevent
future from coming. Improvement on post-r0p0 Cortex-A57 exceeds 50%,
while new code is not slower on r0p0, or Apple A7 for that matter.
[Update even SHA results for latest Cortex-A53.]
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-02 09:47:56 +02:00
Andy Polyakov
b1a5d1c652
sha/asm/sha512-armv4.pl: adapt for use in Linux kernel context.
...
Follow-up to sha256-armv4.pl in cooperation with Ard Biesheuvel
(Linaro) and Sami Tolvanen (Google).
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-03-29 15:24:20 +02:00
Andy Polyakov
51f8d09556
sha/asm/sha256-armv4.pl: fix compile issue in kernel
...
and eliminate little-endian dependency.
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-03-29 15:22:03 +02:00
Andy Polyakov
2ecd32a1f8
sha/asm/sha256-armv4.pl: adapt for use in Linux kernel context.
...
In cooperation with Ard Biesheuvel (Linaro) and Sami Tolvanen (Google).
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23 13:34:03 +01:00
Andy Polyakov
e390ae50e0
ARMv4 assembly pack: add Cortex-A15 performance data.
...
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-03-08 14:09:32 +01:00
Andy Polyakov
3372c4fffa
sha/asm/sha1-586.pl: fix typo.
...
The typo doesn't affect supported configuration, only unsupported masm.
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-02-22 19:19:26 +01:00
Andy Polyakov
9b05cbc33e
Add assembly support to ios64-cross.
...
Fix typos in ios64-cross config line.
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-23 15:38:41 +01:00
Andy Polyakov
c462a6817b
Fix macosx-ppc build (and typos in unwind info).
...
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-22 12:13:57 +01:00
Andy Polyakov
52cab56356
sha256-armv4.pl: fix typo.
...
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-22 12:00:55 +01:00
Andy Polyakov
e464403d0b
Fix irix-cc build.
...
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-01-07 18:39:39 +01:00
Andy Polyakov
c1669e1c20
Remove inconsistency in ARM support.
...
This facilitates "universal" builds, ones that target multiple
architectures, e.g. ARMv5 through ARMv7. See commentary in
Configure for details.
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-01-04 23:45:08 +01:00
Rich Salz
8cfe08b4ec
Remove all .cvsignore files
...
Reviewed-by: Tim Hudson <tjh@openssl.org>
2014-11-28 18:32:43 -05:00
Andy Polyakov
b59f92e75d
x86[_64] assembly pack: add Silvermont performance data.
...
Reviewed-by: Rich Salz <rsalz@openssl.org>
2014-08-30 19:13:49 +02:00
Andy Polyakov
e608273a80
sha1-mb-x86_64.pl: add commentary.
...
Reviewed-by: Emilia Kasper <emilia@openssl.org>
2014-08-21 00:15:40 +02:00
Andy Polyakov
55eb14da20
sha1-mb-x86_64.pl: fix typo.
...
Reviewed-by: Emilia Kasper <emilia@openssl.org>
2014-08-20 22:10:20 +02:00
Andy Polyakov
5c3598307e
sha1-ppc.pl: shave off one cycle from BODY_20_39
...
and improve performance by 10% on POWER[78].
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2014-07-21 15:29:09 +02:00
Andy Polyakov
07b635cceb
sha[1|512]-x86_64.pl: fix logical errors with $shaext=0.
2014-07-07 17:01:07 +02:00
Andy Polyakov
7eb9680ae1
sha512-x86_64.pl: fix typo.
...
PR: #3431
2014-07-05 23:59:57 +02:00
Andy Polyakov
cd1922cde0
Engage SHA256/512 for PowerISA 2.07.
2014-07-01 19:09:11 +02:00
Andy Polyakov
eaa4820471
Add SHA256/512 for PowerISA 2.07.
2014-07-01 19:09:11 +02:00
Andy Polyakov
29be3f6411
sha512-x86_64.pl: fix linking problem under Windows.
2014-07-01 17:11:22 +02:00
Andy Polyakov
a356e488ad
x86_64 assembly pack: refine clang detection.
2014-06-28 17:23:21 +02:00
Andy Polyakov
7eb0488280
x86_64 assembly pack: addendum to last clang commit.
2014-06-24 08:37:05 +02:00
Andy Polyakov
ac171925ab
x86_64 assembly pack: allow clang to compile AVX code.
2014-06-24 08:24:25 +02:00
Andy Polyakov
0f777aeb50
ARMv8 assembly pack: add Cortex performance numbers.
2014-06-24 08:06:05 +02:00
Andy Polyakov
c9cf29cca2
sha1-x86_64.pl: add missing rex prefix in shaext.
...
PR: 3405
2014-06-14 15:27:54 +02:00
Andy Polyakov
977f32e852
Facilitate back-porting of AESNI and SHA modules.
...
Fix SEH and stack handling in Win64 build.
2014-06-12 21:45:41 +02:00
Andy Polyakov
619b94667c
Add support for Intel SHA extension.
2014-06-11 10:27:45 +02:00
Andy Polyakov
5dcf70a1c5
ARM assembly pack: get ARMv7 instruction endianness right.
...
Pointer out and suggested by: Ard Biesheuvel.
2014-06-06 21:27:18 +02:00
Andy Polyakov
cd91fd7c32
sha[1|512]-armv8.pl: get instruction endianness right.
...
Submitted by: Ard Biesheuvel.
2014-06-06 20:50:43 +02:00
Andy Polyakov
797d24bee9
sha[1|256]-armv4: harmonize with arm_arch.h.
2014-06-01 22:29:50 +02:00
Andy Polyakov
ddb6b965da
Add SHA for ARMv8.
2014-06-01 18:02:11 +02:00
Andy Polyakov
bd227733b9
C64x+ assembly pack: make it work with older toolchain.
2014-05-04 16:38:32 +02:00
Andy Polyakov
9250a30692
sha/asm/sha1-armv4-large.pl: add NEON and ARMv8 code paths.
...
sha/asm/sha256-armv4.pl: add ARMv8 code path.
2014-05-04 10:57:55 +02:00
Andy Polyakov
d49135e7ea
sha/asm/sha256-586.pl: don't try to compile SIMD with no-sse2.
2014-02-26 10:22:13 +01:00
Andy Polyakov
147cca8f53
sha/asm/sha512-x86_64.pl: fix compilation error on Solaris.
2014-02-26 09:30:03 +01:00
Andy Polyakov
3847d15d6b
[aesni|sha*]-mb-x86_64.pl: add data prefetching.
2014-02-05 14:03:35 +01:00
Andy Polyakov
b217ca63b1
crypto/sha/asm/sha1-x86_64.pl update:
...
+5% on Atom Silvermont, up to +8% improvement of legacy code.
Harmonize sha1-586.pl and aesni-sha1-x86_86.p with sha1-x86_64.pl.
2014-02-01 21:07:16 +01:00
Andy Polyakov
5dc52b919b
PPC assembly pack: relax 64-bit requirement for little-endian support.
2014-01-07 22:44:21 +01:00
Andy Polyakov
ad0d2579cf
sha/asm/sha256-armv4.pl: add NEON code path.
...
(and shave off cycle even from integer-only code)
2014-01-04 18:04:53 +01:00
Andy Polyakov
25f7117f0e
aesni-sha1-x86_64.pl: refine Atom-specific optimization.
...
(and update performance data, and fix typo)
2014-01-04 17:13:57 +01:00
Andy Polyakov
2218c296b4
ARM assembly pack: make it work with older toolchain.
2013-12-28 12:17:08 +01:00
Andy Polyakov
fc0503a25c
sha1-x86_64.pl: harmonize Win64 SE handlers for SIMD code pathes.
...
(and ensure stack alignment in the process)
2013-12-18 22:12:08 +01:00
Andy Polyakov
fb65e65e28
sha/asm/sha512-ppc.pl: fix typo.
...
Submitted by: Marcelo Cerri
2013-10-31 20:21:54 +01:00
Andy Polyakov
8ff8a829b0
perlasm/ppc-xlate.pl: add .quad directive
...
sha/asm/sha512-ppc.pl: add little-endian support.
Submitted by: Marcelo Cerri
2013-10-31 11:08:51 +01:00
Andy Polyakov
3f9562a669
sha/asm/sha1-ppc.pl: add little-endian support.
...
Submitted by: Marcelo Cerri
2013-10-31 11:07:38 +01:00
Andy Polyakov
76c15d790e
PPC assembly pack: make new .size directives profiler-friendly.
...
Suggested by: Anton Blanchard
2013-10-15 23:40:12 +02:00
Andy Polyakov
d6019e1654
PPC assembly pack: add .size directives.
2013-10-15 00:14:39 +02:00
Andy Polyakov
0c2adb0a9b
MIPS assembly pack: get rid of deprecated instructions.
...
Latest MIPS ISA specification declared 'branch likely' instructions
obsolete. To makes code future-proof replace them with equivalent.
2013-10-13 13:14:52 +02:00
Andy Polyakov
61ba602af5
sha/asm/sha*-mb-x86_64.pl: commentary update.
2013-10-08 23:36:55 +02:00
Andy Polyakov
b783858654
x86_64 assembly pack: add multi-block AES-NI, SHA1 and SHA256.
2013-10-03 00:18:58 +02:00
Veres Lajos
478b50cf67
misspellings fixes by https://github.com/vlajos/misspell_fixer
2013-09-05 21:39:42 +01:00
Andy Polyakov
006784378d
crypto/sha/asm/sha*-x86_64.pl: comply with Win64 ABI.
2013-07-31 23:50:15 +02:00
Andy Polyakov
241fba4ea9
sha512-586.pl: fix typo.
...
Submitted by: Gisle Vanem
2013-07-10 09:59:25 +02:00
Andy Polyakov
02450ec69d
PA-RISC assembler pack: switch to bve in 64-bit builds.
...
PR: 3074
2013-06-18 10:37:00 +02:00
Andy Polyakov
cd8d7335af
sha1-x86_64.pl: add AVX2+BMI code path.
2013-06-10 22:30:34 +02:00
Andy Polyakov
c7f690c243
sha512-x86_64.pl: upcoming-Atom-specific optimization.
2013-06-10 22:29:01 +02:00
Andy Polyakov
32213d8d77
sha[256|512]-586.pl: add more SIMD code paths.
2013-06-10 22:26:53 +02:00
Andy Polyakov
504bbcf3cd
sha512-x86_64.pl: +16% optimization for Atom.
...
(and pending AVX2 changes).
2013-05-25 19:02:57 +02:00
Andy Polyakov
47edeb9f59
sha256-586.pl: code refresh.
2013-02-15 11:23:06 +01:00
Andy Polyakov
35c77b7303
sha1-586.pl: code refresh.
2013-02-14 22:20:17 +01:00
Andy Polyakov
7c9e81be40
[aesni-]sha1-x86_64.pl: code refresh.
2013-02-14 16:14:02 +01:00
Andy Polyakov
c4558efbf3
sha512-x86_64.pl: add AVX2 code path.
2013-02-14 15:39:42 +01:00
Andy Polyakov
46bf83f07a
x86_64 assembly pack: make Windows build more robust.
...
PR: 2963 and a number of others
2013-01-22 22:27:28 +01:00
Andy Polyakov
1598af9ac9
sha512-ppc.pl: minimize stack frame.
2013-01-22 21:09:14 +01:00
Andy Polyakov
d4571f43e8
sha512-ppc.pl: add PPC32 code, >2x improvement on in-order cores.
2013-01-19 17:22:05 +01:00
Andy Polyakov
904732f68b
C64x+ assembly pack: improve EABI support.
2012-11-28 13:19:10 +00:00
Andy Polyakov
1efd583085
SPARCv9 assembly pack: harmonize ABI handling (so that it's handled in one
...
place at a time, by pre-processor in .S case and perl - in .s).
2012-10-25 12:07:32 +00:00
Andy Polyakov
aea4126e4e
[md5|sha1|sha512]-sparcv9.pl: "cooperative" optimizations based on
...
suggestions from David Miller.
2012-10-14 14:46:56 +00:00