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
184bc45f68
Unified - adapt the generation of aes assembler to use GENERATE
...
This gets rid of the BEGINRAW..ENDRAW sections in crypto/aes/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
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
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
bd30091c97
x86[_64] assembly pack: add optimized AES-NI OCB subroutines.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-10 13:11:26 +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
Andy Polyakov
ce24d2ed23
aes/asm/vpaes-ppc.pl: eliminate overhung stores in misaligned cases.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-11-18 11:56:21 +01:00
Andy Polyakov
a5fd24d19b
aesni-sha256-x86_64.pl: fix crash on AMD Jaguar.
...
It was also found that stich performs suboptimally on AMD Jaguar, hence
execution is limited to XOP-capable and Intel processors.
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-11-16 13:06:10 +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
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
c4cd831606
aes/asm/bsaes-armv7.pl: fix compilation with Xcode 6.3.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-05-13 17:11:00 +02:00
Andy Polyakov
82c4a07939
aes/asm/aesni-sha256-x86_64.pl: fix Windows compilation failure with old assembler.
...
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-05-13 16:58:37 +02:00
Andy Polyakov
7be6bc68c6
aes/asm/aesni-x86.pl: fix typo affecting Windows build.
...
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-04-20 18:39:56 +02:00
Andy Polyakov
23f6eec71d
aes/asm/aesni-x86[_64].pl update.
...
This addresses
- request for improvement for faster key setup in RT#3576;
- clearing registers and stack in RT#3554 (this is more of a gesture to
see if there will be some traction from compiler side);
- more commentary around input parameters handling and stack layout
(desired when RT#3553 was reviewed);
- minor size and single block performance optimization (was lying around);
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-04-20 15:43:05 +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
35141544e2
aes/asm/vpaes-armv8.pl: make it compile on iOS.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-04-20 14:30:50 +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
2779c08436
Add vpaes-amrv8.pl module.
...
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-28 15:41:50 +01:00
Andy Polyakov
e620e5ae37
aes/asm/bsaes-armv7: fix kernel-side XTS and harmonize with Linux.
...
XTS bug spotted and fix suggested by Adrian Kotelba.
Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-02-24 10:08:57 +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
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
Andy Polyakov
69d5747f90
aesni-x86_64.pl: make ECB subroutine Windows ABI compliant.
...
RT: 3553
Reviewed-by: Emilia Kasper <emilia@openssl.org>
2014-10-15 11:10:08 +02: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
1b0fe79f3e
x86_64 assembly pack: improve masm support.
2014-07-09 20:08:01 +02:00
Andy Polyakov
a356e488ad
x86_64 assembly pack: refine clang detection.
2014-06-28 17:23:21 +02:00
Andy Polyakov
052ecf91d2
aesp8-ppc.pl: rigid input verification in key setup.
2014-06-25 22:13:17 +02:00
Andy Polyakov
7b8c8c4d79
aesv8-armx.pl: rigid input verification in key setup.
2014-06-25 22:10:45 +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
015364baf3
aesv8-armx.pl: inclrease interleave factor.
...
This is to compensate for higher aes* instruction latency on Cortex-A57.
2014-06-24 08:08:58 +02:00
Andy Polyakov
9024b84b7c
aesni-sha[1|256]-x86_64.pl: fix logical error and MacOS X build.
2014-06-16 10:11:45 +02:00
Andy Polyakov
764fe518da
aesp8-ppc.pl: add CTR mode.
2014-06-16 08:05:19 +02:00
Andy Polyakov
91a6bf80f8
aesni-sha256-x86_64.pl: add missing rex in shaext.
...
PR: 3405
2014-06-14 16:03:06 +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
e2eabed110
aesni-mb-x86_64.pl: add Win64 SEH.
2014-06-10 23:08:06 +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
65cad34b10
aesv8-armx.pl update:
...
- fix 32-bit build (submitted by Ard Biesheuvel);
- fix performance issue in CTR;
2014-06-06 12:18:51 +02:00
Andy Polyakov
d86689e1d9
aesp8-ppc.pl: fix typos.
2014-06-04 08:34:18 +02:00
Andy Polyakov
de51e830a6
Engage POWER8 AES support.
2014-06-01 23:38:11 +02:00
Andy Polyakov
ddacb8f27b
Engage ARMv8 AES support.
2014-06-01 22:20:37 +02:00
Andy Polyakov
e09ea622bb
aesv8-armx.pl: add CTR implementation.
...
Submitted by: Ard Biesheuvel.
2014-05-29 22:45:35 +02:00
Andy Polyakov
7cbdb975c2
aesp8-ppc.pl: optimize CBC decrypt even further.
...
10-19% improvement depending on key length and endianness.
2014-05-29 15:10:12 +02:00
Andy Polyakov
fda29b6db0
aesp8-ppc.pl: add optimized CBC decrypt.
2014-05-23 20:15:06 +02:00
Andy Polyakov
b83d09f552
vpaes-ppc.pl: comply with ABI.
2014-05-23 20:14:38 +02:00
Andy Polyakov
3e68273326
aesv8-armx.pl: fix typo.
2014-05-20 23:32:12 +02:00
Andy Polyakov
a0a17fcb75
aesv8-armx.pl: optimize by adding 128-bit code paths.
2014-05-20 22:50:28 +02:00
Andy Polyakov
5727e4dab8
Add "teaser" AES module for ARMv8.
...
"Teaser" means that it's initial proof-of-concept to build EVP module
upon.
2014-05-19 08:46:44 +02:00
Andy Polyakov
f75faa16af
Add "teaser" AES module for PowerISA 2.07.
...
"Teaser" means that it's not integrated yet and purpose of this
commit is primarily informational, to exhibit design choices,
such as how to handle alignment and endianness. In other words
it's proof-of-concept code that EVP module will build upon.
2014-05-12 10:35:29 +02:00
Andy Polyakov
bd227733b9
C64x+ assembly pack: make it work with older toolchain.
2014-05-04 16:38:32 +02:00
Andy Polyakov
558ff0f0c1
aes/asm/bsaes-x86_64.pl: Atom-specific optimization.
2014-04-24 10:13:30 +02:00
Andy Polyakov
6eebcf3459
vpaes-[x86_64|ppc].pl: fix typo, which for some reason triggers rkhunter.
2014-04-06 12:50:36 +02:00
Andy Polyakov
e704741bf3
aes/asm/vpaes-ppc.pl: fix traceback info.
2014-02-25 20:11:34 +01:00
Andy Polyakov
214368ffee
aes/asm/aesni-x86[_64].pl: minor Atom-specific performance tweak.
2014-02-21 12:14:04 +01:00
Andy Polyakov
5599c7331b
aes/asm/aesni-x86_64.pl: further optimization for Atom Silvermont.
...
Improve CBC decrypt and CTR by ~13/16%, which adds up to ~25/33%
improvement over "pre-Silvermont" version. [Add performance table to
aesni-x86.pl].
2014-02-14 17:06:15 +01:00
Andy Polyakov
3847d15d6b
[aesni|sha*]-mb-x86_64.pl: add data prefetching.
2014-02-05 14:03:35 +01:00
Andy Polyakov
d8ba0dc977
crypto/aes/asm/aesni-x86[_64].pl update, up to 14% improvement on
...
Atom Silvermont. On other CPUs one can observe 1% loss on some
algorithms.
2014-02-01 21:13:49 +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
1fb83a3bc2
aes/asm/vpaes-ppc.pl: add little-endian support.
2014-01-07 16:48:04 +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
2f3af3dc36
aesni-sha1-x86_64.pl: add stiched decrypt procedure,
...
but keep it disabled, too little gain... Add some Atom-specific
optimization.
2014-01-03 21:40:08 +01:00
Andy Polyakov
a61e51220f
aes/asm/vpaes-ppc.pl: comply with ABI.
2013-12-04 21:46:40 +01:00
Andy Polyakov
89bb96e51d
vpaes-ppc.pl: fix bug in IV handling and comply with ABI.
2013-11-29 14:40:51 +01:00
Andy Polyakov
b5c54c914f
Add Vector Permutation AES for PPC.
2013-11-27 22:32:56 +01:00
Andy Polyakov
c944f81703
aes/asm/aes-ppc.pl: add little-endian support.
...
Submitted by: Marcelo Cerri
2013-10-31 11:41:26 +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
7e1e3334f6
aes/asm/bsaes-x86_64.pl: fix Windows-specific bug in XTS.
...
PR: 3139
2013-10-12 21:37:55 +02:00
Andy Polyakov
6f6a613032
aes/asm/bsaes-*.pl: improve decrypt performance.
...
Improve decrypt performance by 10-20% depending on platform. Thanks
to Jussi Kivilinna for providing valuable hint. Also thanks to Ard
Biesheuvel.
2013-10-03 23:08:31 +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
Andy Polyakov
066caf0551
aes/asm/*-armv*.pl: compensate for inconsistencies in tool-chains.
...
Suggested by: Ard Biesheuvel
2013-10-01 20:33:06 +02:00
Andy Polyakov
e0202d946d
aes-armv4.pl, bsaes-armv7.pl: add Linux kernel and Thumb2 support.
...
Submitted by: Ard Biesheuvel
2013-09-20 13:22:57 +02:00
Andy Polyakov
612f4e2384
bsaes-armv7.pl: remove partial register operations in CTR subroutine.
2013-09-15 19:47:51 +02:00
Andy Polyakov
29f41e8a80
bsaes-armv7.pl: remove byte order dependency and minor optimization.
2013-09-15 19:44:43 +02:00
Ard Biesheuvel
a2ea9f3ecc
Added support for ARM/NEON based bit sliced AES in XTS mode
...
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2013-09-15 19:37:16 +02:00
Andy Polyakov
42386fdb62
aesni-sha256-x86_64.pl: fix typo in Windows SEH.
2013-06-30 23:06:28 +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
3b848d3401
aesni-sha1-x86_64.pl: update performance data.
2013-06-10 22:35:22 +02:00
Andy Polyakov
42b9a4177b
aesni-sha256-x86_64.pl: harmonize with latest sha512-x86_64.pl.
2013-06-10 22:34:06 +02:00
Andy Polyakov
36df342f9b
aesni-x86_64.pl: optimize XTS.
...
PR: 3042
2013-05-25 19:23:09 +02:00
Andy Polyakov
4df2280b4f
aesni-sha1-x86_64.pl: Atom-specific optimization.
2013-05-25 19:08:39 +02:00
Andy Polyakov
988d11b641
vpaes-x86[_64].pl: minor Atom-specific optimization.
2013-05-25 18:57:03 +02:00
Andy Polyakov
8a97a33063
Add AES-SHA256 stitch.
2013-05-13 22:49:58 +02:00
Andy Polyakov
cd54249c21
aesni-x86_64.pl: minor CTR performance improvement.
2013-05-13 15:49:03 +02:00
Andy Polyakov
9575d1a91a
bsaes-armv7.pl: add bsaes_cbc_encrypt and bsaes_ctr32_encrypt_blocks.
...
Submitted by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributor claims ~50% improvement in CTR and ~9% in CBC decrypt
on Cortex-A15.
2013-04-23 17:52:14 +02:00
Andy Polyakov
75fe422323
bsaes-armv7.pl: take it into build loop.
2013-04-23 17:49:54 +02:00
Andy Polyakov
73325b221c
aesni-x86_64.pl: optimize CBC decrypt.
...
Give CBC decrypt approximately same treatment as to CTR and collect 25%.
2013-04-04 15:56:23 +02:00
Andy Polyakov
b4a9d5bfe8
aesni-x86_64.pl: fix typo and optimize small block performance.
2013-03-29 18:54:24 +01:00
Andy Polyakov
6c79faaa9d
aesni-x86_64.pl: optimize CTR even further.
...
Based on suggestions from Shay Gueron and Vlad Krasnov.
PR: 3021
2013-03-26 14:29:18 +01:00
Andy Polyakov
1bc4d009e1
aesni-x86_64.pl: optimize CTR even further.
2013-03-19 20:03:02 +01:00
Andy Polyakov
7c9e81be40
[aesni-]sha1-x86_64.pl: code refresh.
2013-02-14 16:14:02 +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
8df400cf8d
aes-s390x.pl: fix XTS bugs in z196-specific code path.
2012-12-05 17:44:45 +00:00