summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/asm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Clean up PPC CPU capabilities and Montgomery code.jsing2024-11-012-1090/+2
| | | | | | | | | | ppc64-mont.pl (which produces bn_mul_mont_fpu64()) is unused on both powerpc and powerpc64, so remove it. ppccap.c doesn't actually contain anything to do with CPU capabilities - it just provides a bn_mul_mont() that calls bn_mul_mont_int() (which ppc-mont.pl generates). Change ppc-mont.pl to generate bn_mul_mont() directly and remove ppccap.c. ok tb@
* Replace uses of endbr64 with _CET_ENDBR from cet.htb2024-02-243-13/+13
| | | | | | | | | cet.h is needed for other platforms to emit the relevant .gnu.properties sections that are necessary for them to enable IBT. It also avoids issues with older toolchains on macOS that explode on encountering endbr64. based on a diff by kettenis ok beck kettenis
* Add endbr64 where needed by inspection. Passes regresson tests.deraadt2023-04-253-0/+13
| | | | ok jsing, and kind of tb an earlier version
* Remove now unused GF2m perlasm generatorstb2023-04-153-980/+0
|
* Use explicit .text instead of .previous to please Windows/MinGW on amd64tb2023-02-231-1/+1
| | | | ok miod
* Replace bn_sub_part_words() with bn_sub().jsing2023-02-221-210/+0
| | | | | | | | Now that bn_sub() handles word arrays with potentially different lengths, we no longer need bn_sub_part_words() - call bn_sub() instead. This allows us to entirely remove the unnecessarily complex bn_sub_part_words() code. ok tb@
* Bye bye x86_64-gcc.c.jsing2023-02-111-559/+0
| | | | This is no longer used, since we're now using s2n-bignum functions instead.
* Use .section .rodata instead of a plain .rodatatb2023-02-091-1/+1
| | | | | | | | At least gcc 12 on Fedora is very unhappy about a plain .rodata and throws Error: unknown pseudo-op: `.rodata'. So add a .section in front of it to make it happy. ok deraadt miod
* Remove AIX toc data after every function. NFCmiod2023-02-022-35/+0
|
* Move all data blocks from .text to .rodata and cleanup up and homogeneize codemiod2023-02-021-1/+0
| | | | responsible from getting the proper address of those blocks.
* Move all data blocks from .text to .rodata and cleanup up and homogeneize codemiod2023-02-013-9/+10
| | | | | | responsible from getting the proper address of those blocks. ok tb@ jsing@
* Remove sparc related files from libcrypto.jsing2023-01-311-1458/+0
| | | | | | | | The sparc platform got retired a while back, however some parts remained hiding in libcrypto. Mop these up (along with the bn_arch.h that I introduced). Spotted by and ok tb@
* Move {mul,sqr}_add_c{,2} macros from bn_asm.c to bn_local.h.jsing2023-01-201-1/+6
| | | | | | | | | | | These depend on other macros that are in already in bn_local.h and this makes them available to other source files. A lot more clean up will be needed in the future. Of course x86_64-gcc.c makes use of the same macro names - sprinkle some undef in there for the time being. ok tb@
* Remove more unused assembly generation scripts.jsing2023-01-198-696/+0
|
* Remove various unused assembly files and assembly generation scripts.jsing2023-01-196-6507/+0
| | | | | | These are just creating clutter and cause grep noise. ok miod@
* Move constants out of text segment into rodata to prepare for xonly supportderaadt2023-01-143-6/+2
| | | | | on amd64. no pic handling is neccessary since amd64 has full reach. ok kettenis
* Move all data tables from .text section to .rodata, and update the code tomiod2023-01-132-4/+0
| | | | | | | fetch them correctly when building PIC. Also drop unused data, and remove --no-execute-only from linker flags. ok kettenis@
* Move all data tables from .text section to .rodata, and update the code tomiod2023-01-131-9/+1
| | | | | | | fetch them correctly when building PIC. Also drop unused data, and remove --no-execute-only from linker flags. ok jsing@ kettenis@
* spelling fixes; from paul tagliamontejmc2022-12-2613-21/+21
| | | | | | | i removed the arithmetics -> arithmetic changes, as i felt they were not clearly correct ok tb
* Make internal header file names consistenttb2022-11-261-2/+2
| | | | | | | | | | | | | | | | Libcrypto currently has a mess of *_lcl.h, *_locl.h, and *_local.h names used for internal headers. Move all these headers we inherited from OpenSSL to *_local.h, reserving the name *_internal.h for our own code. Similarly, move dtls_locl.h and ssl_locl.h to dtls_local and ssl_local.h. constant_time_locl.h is moved to constant_time.h since it's special. Adjust all .c files in libcrypto, libssl and regress. The diff is mechanical with the exception of tls13_quic.c, where #include <ssl_locl.h> was fixed manually. discussed with jsing, no objection bcook
* Remove superfluous datatype that is 32 by default. Clang complainspatrick2017-01-041-1/+1
| | | | | | | about it and it's ok to remove it. This only came up as our clang is targeted at armv7 which enables the NEON instructions. ok kettenis@
* Replace all uses of magic numbers when operating on OPENSSL_ia32_P[] bymiod2016-11-044-12/+13
| | | | | | | | | | | | | | | meaningful constants in a private header file, so that reviewers can actually get a chance to figure out what the code is attempting to do without knowing all cpuid bits. While there, turn it from an array of two 32-bit ints into a properly aligned 64-bit int. Use of OPENSSL_ia32_P is now restricted to the assembler parts. C code will now always use OPENSSL_cpu_caps() and check for the proper bits in the whole 64-bit word it returns. i386 tests and ok jsing@
* Less S390.jsing2016-09-043-1176/+0
| | | | ok deraadt@
* Less IA64.jsing2016-09-042-2406/+0
| | | | ok deraadt@
* switch to a constant-time gather procedure for amd64 mont5 asmbcook2016-09-031-199/+314
| | | | | | | from OpenSSL commit 7f98aa7403a1244cf17d1aa489f5bb0f39bae431 CVE-2016-0702 ok beck@
* More adress -> addressmmcc2015-12-241-1/+1
|
* Remove workaround for old SIMICS toolchain.miod2015-09-121-45/+1
|
* Remove horribly old and outdated `documentation' for the assembly code.miod2015-09-121-27/+0
|
* Fixup inter-bank movq/movd operations, emit bytes for pclmulqdq again.bcook2015-09-112-12/+12
| | | | | | | | | | Fixes builds gcc + Apple's assembler, working on reenabling builds with older OpenBSD releases. based on OpenSSL commit: https://git.openssl.org/?p=openssl.git;a=commitdiff;h=902b30df193afc3417a96ba72a81ed390bd50de3 ok miod@
* typosmiod2015-08-181-1/+1
|
* Fix CVE-2014-3570: properly calculate the square of a BIGNUM value.bcook2015-02-252-534/+180
| | | | | | | | | | | See https://www.openssl.org/news/secadv_20150108.txt for a more detailed discussion. Original OpenSSL patch here: https://github.com/openssl/openssl/commit/a7a44ba55cb4f884c6bc9ceac90072dea38e66d0 The regression test is modified a little for KNF. ok miod@
* deregister; no binary changejsg2014-10-281-3/+3
| | | | ok jsing@ miod@
* typosmiod2014-07-121-1/+1
|
* Fix incorrect bounds check in amd64 assembly version of bn_mul_mont();miod2014-06-202-4/+4
| | | | | noticed and fix by Fedor Indutny of Joyent ( https://github.com/joyent/node/issues/7704 )
* tags as requested by miod and teduderaadt2014-06-121-0/+1
|
* s/assember/assembler/ before someone gets offended. At the lastderaadt2014-06-068-13/+13
| | | | | hackathon, just saying 'ass ember' was enough to start giggles. Unfortunately far more offensive stuff remains in here...
* typosmiod2014-05-031-2/+2
|
* More use of 64-bit registers which needs to be disabled under OpenBSD.miod2014-05-021-0/+2
|
* Do not output SOM-specific directives.miod2014-05-011-0/+6
|
* Fix include filename to get register name aliases under BSDmiod2014-05-011-6/+1
|
* dead meatmiod2014-05-012-2528/+0
|
* First pass at removing win64 support from the assembly generating Perljsing2014-04-302-286/+0
| | | | | | | scripts. We certainly do not need an identical copy of the win64 exception handler in each script (surely one copy would be sufficient). ok miod@
* Remove WIN32, WIN64 and MINGW32 tentacles.miod2014-04-281-4/+0
| | | | | | | | Also check for _LP64 rather than __arch64__ (the former being more reliable than __LP64__ or __arch64__) to tell 64-bit int platforms apart from 32-bit int platforms. Loosely based upon a diff from Martijn van Duren on tech@
* Try to clean the maze of <openssl/bn.h> defines regarding the BN internals.miod2014-04-241-10/+0
| | | | | | | | | | | | | | | | | | | | | | | The intent of this change is to only keep support for two kind of architectures: - those with 32-bit int and long, and 64-bit long long, where ``long * long -> long long'' multiplication routines are available. - those with 64-bit int and long, and no 128-bit long long type. This gets rid of the SIXTY_FOUR_BIT_LONG, SIXTY_FOUR_BIT (not the same!), THIRTY_TWO_BIT, SIXTEEN_BIT and EIGHT_BIT defines. After this change, the types and defines are as follows: arch: 64bit 32bit rationale BN_LLONG undefined defined defined if l * l -> ll BN_ULLONG undefined u long long result of BN_LONG * BN_LONG BN_ULONG u long u int native register size BN_LONG long int the same, signed BN_BITS 128 64 size of 2*BN_ULONG in bits BN_BYTES 8 4 size of 2*BN_ULONG in bytes BN_BITS2 64 32 BN_BITS / 2 Tested on various 32-bit and 64-bit OpenBSD systems of various endianness.
* theo found a file we don't seem to need, but just in case, i will pastetedu2014-04-201-3/+0
| | | | | | the contents below: #!/usr/local/bin/perl # x86 assember
* Go home, VMS, you're drunkmiod2014-04-151-6440/+0
|
* This commit was generated by cvs2git to track changes on a CVS vendormiod2014-04-137-32/+36
|\ | | | | branch.
| * Import OpenSSL 1.0.1gmiod2014-04-137-32/+36
| |
* | This commit was generated by cvs2git to track changes on a CVS vendordjm2012-10-1316-248/+10473
|\| | | | | branch.
| * import OpenSSL-1.0.1cdjm2012-10-1316-248/+10473
| |