Commit Graph

296 Commits

Author SHA1 Message Date
Andy Polyakov 1b0fe79f3e x86_64 assembly pack: improve masm support. 2014-07-09 20:08:01 +02:00
Andy Polyakov c7ada16d39 perlasm/ppc-xlate.pl update. 2014-07-01 19:11:11 +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 5e44c144e6 SPARC T4 assembly pack: treat zero input length in CBC.
The problem is that OpenSSH calls EVP_Cipher, which is not as
protective as EVP_CipherUpdate. Formally speaking we ought to
do more checks in *_cipher methods, including rejecting
lengths not divisible by block size (unless ciphertext stealing
is in place). But for now I implement check for zero length in
low-level based on precedent.

PR: 3087, 2775
2014-03-07 10:30:37 +01:00
Andy Polyakov b62a4a1c0e perlasm/x86asm.pl: recognize elf-1 denoting old ELF platforms. 2014-02-27 14:26:12 +01:00
Andy Polyakov ce876d8316 perlasm/x86gas.pl: limit special OPENSSL_ia32cap_P treatment to ELF. 2014-02-27 14:22:13 +01:00
Andy Polyakov f4d456408d x86[_64]cpuid.pl: add low-level RDSEED. 2014-02-14 17:24:12 +01:00
Andy Polyakov 128e1d101b PPC assembly pack: improve AIX support (enable vpaes-ppc). 2013-12-18 21:19:08 +01:00
Andy Polyakov 41965a84c4 x86_64-xlate.pl: minor update. 2013-12-09 21:23:19 +01:00
Andy Polyakov 26e18383ef perlasm/ppc-xlate.pl: add support for AltiVec/VMX and VSX.
Suggested by: Marcello Cerri
2013-12-04 22:01:31 +01:00
Andy Polyakov f586d97191 perlasm/ppc-xlate.pl: improve linux64le support.
Suggested by: Marcello Cerri
2013-12-04 21:47:43 +01:00
Andy Polyakov 0e0a105364 perlas/ppc-xlate.pl: fix typo. 2013-10-31 11:58:50 +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 d6019e1654 PPC assembly pack: add .size directives. 2013-10-15 00:14:39 +02:00
Andy Polyakov 6b2cae0c16 perlasm/sparcv9_modes.pl: make it work even with seasoned perl.
PR: 3130
2013-10-03 10:42:11 +02:00
Andy Polyakov 667053a2f3 x86_64-xlate.pl: fix jrcxz in nasm case. 2013-10-03 00:26:09 +02:00
Veres Lajos 478b50cf67 misspellings fixes by https://github.com/vlajos/misspell_fixer 2013-09-05 21:39:42 +01:00
Andy Polyakov a9d14832fd x86_64-xlate.pl: Windows fixes. 2013-06-30 23:07:33 +02:00
Andy Polyakov 22de0e6583 x86_64-xlate.pl: minor size/performance improvement. 2013-05-13 16:06:25 +02:00
Andy Polyakov c5d975a743 Add support for SPARC T4 DES opcode. 2013-03-31 14:32:05 +02:00
Andy Polyakov cd68694646 AES for SPARC T4: add XTS, reorder subroutines to improve TLB locality. 2012-11-24 21:55:23 +00:00
Andy Polyakov c5cd28bd64 Extend OPENSSL_ia32cap_P with extra word to accomodate AVX2 capability. 2012-11-17 19:04:15 +00:00
Andy Polyakov b3aee265c5 perlasm/sparcv9_modes.pl: addendum to commit#22966. 2012-11-17 18:34:17 +00:00
Andy Polyakov 38049c2bb9 perlasm/sparcv9_modes.pl: fix typo in IV save code and switch to less
aggressive ASI.
2012-10-25 12:02:37 +00:00
Andy Polyakov fd3b0eb01d sparcv9_modes.pl: membars are reported as must-have. 2012-10-15 14:04:52 +00:00
Andy Polyakov dea8068015 perlasm/sparcv9_modes.pl: "cooperative" optimizations based on suggestions
from David Miller.
2012-10-14 14:25:00 +00:00
Andy Polyakov 54a1f4480e aest4-sparcv9.pl: split it to AES-specific and reusable part. 2012-10-11 18:30:35 +00:00
Andy Polyakov 6206682a35 x86cpuid.pl: hide symbols [backport from x86_64]. 2012-08-29 14:19:59 +00:00
Andy Polyakov f6ff1aa8e0 sha512-x86_64.pl: revert previous change and solve the problem through
perlasm/x86_64-xlate.pl instead.
2012-08-13 12:34:36 +00:00
Andy Polyakov ac82e51f57 x86gas.pl: treat OPENSSL_ia32cap_P accordingly to .hidden status. 2012-07-15 13:24:43 +00:00
Andy Polyakov f9c5e5d92e perlasm: fix symptom-less bugs, missing semicolons and 'my' declarations. 2012-04-28 10:36:58 +00:00
Andy Polyakov ee743dca53 perlasm/x86masm.pl: fix last fix. 2012-03-29 18:09:36 +00:00
Andy Polyakov b2ae61ecf2 x86_64-xlate.pl: remove old kludge.
PR: 2435,2440
2012-03-13 19:19:08 +00:00
Andy Polyakov e6903980af x86_64-xlate.pl: proper solution for RT#2620. 2012-01-21 11:34:53 +00:00
Andy Polyakov 0e1467a64c vpaes-x86.pl: revert previous commit and solve the problem through x86masm.pl.
PR: 2657
2011-12-15 22:20:05 +00:00
Andy Polyakov 7ffa48ad38 perlasm/x86gas.pl: give a hand old assemblers assembling loop instruction. 2011-12-09 19:16:20 +00:00
Andy Polyakov ff6f9f96fd cryptlib.c, etc.: fix linker warnings in 64-bit Darwin build. 2011-11-12 13:10:00 +00:00
Andy Polyakov 4a5397fb68 Configure, x86gas.pl: fix linker warnings in 32-bit Darwin build. 2011-11-12 12:16:11 +00:00
Andy Polyakov 5b198d5eea x86gas.pl: relax .init segment alignment. 2011-10-22 10:49:52 +00:00
Andy Polyakov 4010b341b7 x86_64-xlate.pl: make vpaes-x86_64.pl and rc4-md5-x86_64 work with ml64,
fix bug in .crt section alignment.
PR: 2620, 2624
2011-10-18 09:50:23 +00:00
Andy Polyakov 8fcdb1e60f Add android-x86. 2011-10-15 08:32:16 +00:00
Andy Polyakov a87ff751b7 Add so called Vector Permutation AES x86[_64] assembler, see
http://crypto.stanford.edu/vpaes/ for background information.
It's not integrated into build system yet.
2011-09-12 08:25:14 +00:00
Andy Polyakov ed28aef8b4 Padlock engine: make it independent of inline assembler. 2011-09-06 20:45:36 +00:00
Andy Polyakov 272ba87017 x86_64-xlate.pl: fix movzw. 2011-08-12 21:24:19 +00:00
Andy Polyakov 4195a369fd perlasm/cbc.pl: fix tail processing bug.
PR: 2557
2011-07-13 06:20:30 +00:00
Andy Polyakov 6fa4c7c43b x86_64-xlate.pl: sha1 and md5 warnings made it to nasm 2.09, extend gnu
assembler workaround to all assemblers.
2011-07-04 13:10:50 +00:00
Andy Polyakov 94c64f9a1c x86_64-xlate.pl: masm-specific update. 2011-07-01 21:21:14 +00:00
Andy Polyakov 0a9a692e4e Minor x86_64 perlasm update. 2011-06-27 09:45:10 +00:00
Andy Polyakov 301799b803 x86[_64]cpuid.pl: add function accessing rdrand instruction. 2011-06-04 12:20:45 +00:00
Andy Polyakov c30a2505e2 x86gas.pl: don't omit .comm OPENSSL_ia32cap_P on MacOS X. 2011-05-18 16:28:53 +00:00
Andy Polyakov c7b903e01d x86_64-xlate.pl: add inter-register movq and make x86_64-gfm.s compile on
Solaris, MacOS X, elderly gas...
2011-05-18 16:26:03 +00:00
Andy Polyakov ddc20d4da9 x86_64cpuid.pl: allow shared build to work without -Bsymbolic.
PR: 2466
2011-05-18 16:24:19 +00:00
Andy Polyakov a3e07010b4 ppc-xlate.pl: get linux64 declaration right. 2011-05-16 19:52:41 +00:00
Andy Polyakov 2b9a8ca15b x86gas.pl: add palignr and move pclmulqdq. 2011-05-16 18:07:00 +00:00
Andy Polyakov b5c6aab57e x86_64-xlate.pl: allow "base-less" effective address, add palignr, move
pclmulqdq.
2011-05-16 17:44:38 +00:00
Andy Polyakov e382e4e603 perlasm/x86gas.pl: make OPENSSL_instrument_bus[2] compile. 2011-04-19 19:09:18 +00:00
Andy Polyakov 70d01a7f82 perlasm/x86[nm]asm.pl: make OPENSSL_instrument_bus[2] compile. 2011-04-18 20:18:03 +00:00
Andy Polyakov f84a8ea526 x86gas.pl: make data_short work on legacy systems. 2011-02-10 21:24:24 +00:00
Andy Polyakov d6522548dd x86_64-xlate.pl: fix LNK4078 and LNK4210 link warnings.
PR 2356
2010-10-10 21:07:55 +00:00
Andy Polyakov a9e790b95a perlasm/x86_64-xlate.pl: extend SSE>2 to ml64. 2010-07-26 21:45:38 +00:00
Andy Polyakov 133a7f9a50 perlasm/x86asm.pl: move aesni and pclmulqdq opcodes to aesni-x86.pl and
ghash-x86.pl.
2010-07-26 21:42:07 +00:00
Andy Polyakov d08eae1bda x86 perlasm: add support for 16-bit values. 2010-06-04 13:13:18 +00:00
Andy Polyakov f9a152bd90 x86_64-xlate.pl: refine mingw support and regexps, update commentary. 2010-06-01 05:56:24 +00:00
Andy Polyakov ea7239cf15 x86asm.pl: consistency imrovements. 2010-05-13 15:28:07 +00:00
Andy Polyakov 046ea30864 x86_64-xlate.pl: refine some regexp's and add support for OWORD/QWORD PTR. 2010-05-13 15:26:46 +00:00
Andy Polyakov fead253986 perlasm/x86*: add support to SSE>2 and pclmulqdq. x86_64-xlate.pl provides
correct solution to problem addressed in committ #19244.
2010-04-10 13:55:05 +00:00
Dr. Stephen Henson c95bf51167 don't assume 0x is at start of string 2010-02-03 18:19:22 +00:00
Andy Polyakov 7676eebf42 OPENSSL_cleanse to accept zero length parameter [matching C implementation]. 2010-01-24 14:54:24 +00:00
Andy Polyakov ee2b8ed2f5 x86_64-xlate.pl: refine sign extension logic when handling lea.
PR: 2094,2095
2010-01-19 16:15:23 +00:00
Andy Polyakov 10232bdc0e x86_64-xlate.pl: new gas requires sign extention in lea instruction.
This resolves md5-x86_64.pl and sha1-x86_64.pl bugs, but without modifying
the code.
PR: 2094,2095
2009-11-15 17:11:38 +00:00
Andy Polyakov 55ff3aff8c x86masm.pl: eliminate linker "multiple sections found with different
attributes" warning.
2009-11-15 17:06:44 +00:00
Andy Polyakov 6dd9066e0e x86_64-xlate.pl: small commentary update. 2009-05-12 20:29:27 +00:00
Andy Polyakov 065c5d6328 Engage cmll-x86_64.pl in Win64 build and make it compile correctly. 2009-05-02 21:18:52 +00:00
Andy Polyakov 6c8b9259fc AESNI perlasm update. 2009-04-26 17:58:58 +00:00
Andy Polyakov e303f55fc7 Expand OPENSS_ia32cap to 64 bits. 2009-04-26 17:49:41 +00:00
Andy Polyakov e81695205e x86_64-xlate.pl: support for binary constants, such as 0b1010101. 2008-12-27 14:00:37 +00:00
Andy Polyakov bf785c9849 x86_64-xlate.pl: fix masm hexadecimal constants. 2008-12-19 11:14:38 +00:00
Andy Polyakov 4db4882402 perlasm/x86* update: support for 3 and 4 argument instructions. 2008-12-17 19:56:48 +00:00
Andy Polyakov 93c4ba07d7 x86_64-xlate.pl update, engage x86_64 assembler in mingw64. 2008-11-14 16:40:37 +00:00
Andy Polyakov 8525377265 x86_64-xlate.pl to support MacOS X and mingw64. 2008-11-12 08:05:58 +00:00
Andy Polyakov 8fe8bae15a Minor perlasm updates. 2008-11-03 08:46:07 +00:00
Andy Polyakov 80aa9cc985 x86_64-xlate.pl update: refine SEH support. 2008-10-28 08:40:07 +00:00
Andy Polyakov b94551e823 perlasm update: implement dataseg directive. 2008-07-22 08:44:31 +00:00
Andy Polyakov 9b634c9b37 x86_64-xlate.pl: implement indirect jump/calls, support for Win64 SEH. 2008-07-22 08:42:06 +00:00
Andy Polyakov e4662fdb62 x86masm.pl: harmonize functions' alignment. 2008-07-17 09:46:09 +00:00
Andy Polyakov 9960bdc6fa x86masm.pl cosmetics. 2008-07-15 13:16:42 +00:00
Andy Polyakov 23dcb447ff x86nasm.pl update: use pre-defined macros and allow for /safeseh link. 2008-07-15 12:50:44 +00:00
Andy Polyakov 4f46934269 Depict future Win64/x64 development. 2008-05-03 18:34:59 +00:00
Andy Polyakov a23e3dbee1 Support for NASM>=2 in Win64/x64 build. 2008-02-13 13:07:52 +00:00
Andy Polyakov 8ab9025e31 Ad-hockery for Platform SDK ml64. 2008-02-11 13:04:39 +00:00
Andy Polyakov addd641f3a Unify ppc assembler make rules. 2008-01-13 22:01:30 +00:00
Andy Polyakov a078befcbe rc4-x86_64 portability fix. 2008-01-12 11:29:45 +00:00
Andy Polyakov 26e71a1850 x86gas.pl update. 2008-01-04 22:58:50 +00:00
Dr. Stephen Henson eef0c1f34c Netware support.
Submitted by: Guenter Knauf <eflash@gmx.net>
2008-01-03 22:43:04 +00:00
Andy Polyakov 3a87756fed perlasm/x86*.pl updates. 2008-01-03 16:21:06 +00:00
Andy Polyakov 0fcb905b0d ppc-xlate.pl update. 2007-12-29 18:50:44 +00:00
Andy Polyakov df77428443 Mac OS X x86 assembler support. 2007-12-18 17:28:22 +00:00
Andy Polyakov 3e583572b3 Disable support for Metrowerks assembler. Assembler itself is broken,
specifically it incorrectly encodes EA offsets between 128 and 255.
2007-12-18 09:32:20 +00:00
Andy Polyakov 43d8f27dca x86 perlasm overhaul. 2007-12-18 09:18:49 +00:00
Andy Polyakov 8789af8db8 Structure symbol decorations, optimize label handling... 2007-11-24 16:03:57 +00:00
Andy Polyakov c1d2e00ec5 Synchronize x86nasm.pl with x86unix.pl. 2007-11-22 21:21:35 +00:00
Andy Polyakov ad8bd4ece8 Combat [bogus] relocations in some assember modules. 2007-11-22 20:51:48 +00:00
Andy Polyakov 55eab3b74b Make x86_64 modules work under Win64/x64. 2007-08-23 12:01:58 +00:00
Andy Polyakov 1988a456a7 x86 perlasm updates. 2007-07-25 12:38:11 +00:00
Andy Polyakov 287a9ee76e gas -g doesn't tolerate unpadded .bytes in code segment. 2007-07-13 21:35:56 +00:00
Andy Polyakov b1e8b4e65d x86cpuid fixes.
PR: 1526
2007-05-19 17:52:51 +00:00
Andy Polyakov c6149e2f02 ppc-xlate.pl update. 2007-05-19 17:32:06 +00:00
Andy Polyakov 932cc129ee x86_64 assembler updates. 2007-05-14 15:57:19 +00:00
Andy Polyakov 8f41e4fa4d link warnings caused by nasm modules. 2007-03-20 09:37:06 +00:00
Andy Polyakov 8b71d35458 nasm fixes. 2007-03-20 08:55:58 +00:00
Andy Polyakov c038b8aa56 Typo in perlasm/x86asm.pl. 2006-10-17 16:21:28 +00:00
Andy Polyakov d68ff71004 Support for .asciz directive in perlasm modules. 2006-10-17 06:43:11 +00:00
Andy Polyakov 4b67fefe5a Remove x86ms.pl and reimplement x86*.pl. 2006-09-18 19:17:09 +00:00
Andy Polyakov 2f35ae90fe Fix bug in x86unix.pl introduced in latest update.
PR: 1380
2006-08-31 21:12:17 +00:00
Andy Polyakov 0cc46efa09 perlasm/x86unix.pl update. 2006-07-31 22:26:40 +00:00
Andy Polyakov d3a6461d71 Minor ppc-xlate.pl update. 2006-06-05 09:42:31 +00:00
Andy Polyakov 67d990904e Futher minor PPC assembler update. 2006-05-04 21:30:41 +00:00
Andy Polyakov c09a0318b7 Minor PPC assembler updates. 2006-05-03 14:07:34 +00:00
Andy Polyakov fe716ba686 PPC assembler distiller update. 2006-05-03 13:39:34 +00:00
Andy Polyakov 2c5d4daac5 Yet another "teaser" Montgomery multiplication module, for PowerPC. 2006-04-30 21:15:29 +00:00
Dr. Stephen Henson 0c21e13012 Recognize mingw in perlasm. 2006-02-04 01:25:19 +00:00
Andy Polyakov 3ebf898e88 Support for indirect calls in x86 assembler modules. 2005-12-06 18:43:59 +00:00
Andy Polyakov d1593e6b15 Whirlpool hash implementation. The fact that subdirectory and .h file are
called whrlpool is not a typo, but a way to keep the names shorter than
8 characters. Remaining TODO list comprises adding OID, EVP, corresponding
flag to apps/openssl dgst, benchmark, engage assembler...
2005-11-28 20:09:58 +00:00
Andy Polyakov 6a3a7f3076 Minor perlasm clean-up. 2005-11-09 17:20:26 +00:00
Andy Polyakov f1fbd4c7d1 Address MASM-specific problems introduced with
http://cvs.openssl.org/chngview?cn=14547.
2005-11-06 22:01:27 +00:00
Andy Polyakov d256b95768 x86_64-xlate.pl commentary section update. 2005-11-06 11:59:39 +00:00
Andy Polyakov 7a6f825f0f Make pshufw optional and update performance table in sha512-sse2.pl
[as per http://cvs.openssl.org/chngview?cn=14551].
2005-11-03 15:23:11 +00:00
Andy Polyakov 54f3d200d3 Throw in bn/asm/x86-mont.pl Montgomery multiplication "teaser". 2005-10-09 09:53:58 +00:00
Andy Polyakov 9ddeefe39d Proper solution to nasm compilation problems in Borland context. 2005-09-20 06:13:06 +00:00
Andy Polyakov afbe674edb ~15% better AES x86_64 assembler. 2005-07-18 09:15:04 +00:00
Andy Polyakov e84b663a93 complementary x86_64-xlate.pl update. 2005-07-12 22:11:22 +00:00
Andy Polyakov db22e5faa6 A report suggests that there're nasm version, which defaults to 16-bit
segmenting...
2005-06-28 11:28:43 +00:00
Andy Polyakov e442c36252 Solaris x86_64 /usr/ccs/bin/as support. 2005-06-20 14:56:48 +00:00
Andy Polyakov f8bc3e1bd8 Platform update from 8-stable. 2005-05-31 11:07:27 +00:00
Andy Polyakov 82d3dda8a1 Still SEGV trouble in .init segment under Solaris x86... 2005-05-21 17:49:10 +00:00
Andy Polyakov e19e549041 Comply with optimization manual (no data should share cache-line with code). 2005-05-09 21:48:01 +00:00
Andy Polyakov d7561ac576 Allow for 64-bit cache-line alignments in code segment. 2005-05-09 21:27:40 +00:00
Andy Polyakov 5d0d60e2f5 x86_64 assembler translator update. 2005-05-07 08:13:51 +00:00
Andy Polyakov 70cf309517 x86_64 assembler translator update. 2005-05-04 08:42:47 +00:00
Andy Polyakov 4b45051902 x86_64 assembler translator update. 2005-05-03 15:35:14 +00:00
Andy Polyakov 3d5fd31280 Avoid L1 cache aliasing even between key and S-boxes. 2005-04-24 21:09:20 +00:00
Andy Polyakov 1cfd258ed6 Throw in x86_64 AT&T to MASM assembler converter to facilitate development
of dual-ABI Unix/Win64 modules.
2005-04-17 21:05:57 +00:00
Andy Polyakov e5dbccc182 Solaris x86 linker erroneously pads .init segment with zeros instead of
nops, which causes SEGV at startup. So I don't align anymore.
2005-04-04 17:07:16 +00:00
Andy Polyakov da30c74a27 Remove unused assembler modules. 2005-02-06 13:43:02 +00:00
Andy Polyakov addb6e16a8 Throw in AES CBC assembler, up to +40% on aes-128-cbc benchmark. 2005-01-18 01:04:41 +00:00
Andy Polyakov 556b8f3f77 Engage AES x86 assembler module for COFF and a.out targets. 2004-12-26 10:58:39 +00:00
Andy Polyakov d1df5b4339 x86 perlasm update to accomodate aes-586.pl. 2004-12-23 21:43:25 +00:00
Andy Polyakov 0c0788ba0a Solaris x86 perlasm update. 2004-12-10 11:24:42 +00:00
Andy Polyakov 914c2a28c0 perlasm/x86[ms|nasm] update to accomodate updated RC4 assembler module. 2004-11-27 15:14:58 +00:00
Andy Polyakov 376729e130 RC4 tune-up for Intel P4 core, both 32- and 64-bit ones. As it's
apparently impossible to compose blended code with would perform
satisfactory on all x86 and x86_64 cores, an extra RC4_CHAR
code-path is introduced and P4 core is detected at run-time. This
way we keep original performance on non-P4 implementations and
turbo-charge P4 performance by factor of 2.8x (on 32-bit core).
2004-11-21 10:36:25 +00:00