Hi Everyone, FIRST =====
Currently (and painting with a broad brush), config.h does the following. Below, XXX world be SSE2, SSSE3, AESNI, NEON, etc: #if (<some compiler>, <some platform> and <some platform specific define>) # define CRYTPOPP_BOOL_XXX #endif Each test is kind of repeated for each feature. The BOOL part stems from the fact its value is 0 or 1, and it can be used as a template parameter in addition to a macro. After the the gyrations, we then determine platform. Below, XXX world be X86, X64, ARM32, ARM64, etc: #if (<some platform>) # define CRYTPOPP_BOOL_XXX #endif It would make a lot of sense to perform the platform testing first. SECOND ====== Using the macro in in a template parameter (like below) is mostly end-of-life. This worked OK when it was only X86 and X64: typedef SecBlock<byte, (CRYTPOPP_BOOL_X86 | CRYTPOPP_BOOL_X64)> AlignedSecByteBlock; Its unwieldy now that we want aligned buffers for X86, X32, X64, ARM32 and ARM64. An additional wrinkle is SSE2 wants 16-byte aligned buffers, and AVX want 32-byte and 64-byte aligned buffers. I think we need to use a better way to to track when we want aligned buffers, and how to align them. THIRD ===== I think this is mostly where we want to be, but it glosses over some details. We also already have CRYTPOPP_BOOL_ALIGN16 typedef SecBlock<byte, (CRYTPOPP_BOOL_ALIGN16 | CRYTPOPP_BOOL_ALIGN64)> AlignedSecByteBlock; QUESTIONS ======== For (1), I would like to move the platforms up in config.h, and then use the macros in subsequent tests. For (2), I's like to cleanup some of the way the BOOL macros are used now that we are into ARM and MIPS, too. For (3), I'd like to enter a holding pattern until our first AVX, AVX2 or AVX-512 cut-in. Its around the corner because I have some Threefish code that utilizes AVX2 and AVX-512. Is anyone opposed or see problems? Jeff -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.