This swaps out the 5x52 field with a 5x64 one, including both inline and external x86_64 asm code (by @kn-cs).
I’m just opening this to see if it doesn’t break anything on the various platforms we have.
So to give an idea of the status here:
./configure
step. That’s useful in some settings, and enough to enable testing, but not what we want for normal production usage. I’m fine with that, but perhaps people want a clearer plan on how runtime autodetection etc would work before proceeding?There is an issue on macOS to figure out (linking fails; I wonder if the asm/linker detect platform-specific instructions, and need some kind of magic runtime detection annotation?)
According to the CI output, it’s the assembler that fails because it does not like the .type
directive. A shot in the dark is to simply remove them on MacOS (indicators: https://github.com/briansmith/ring/issues/312#issuecomment-274581871 and https://code.woboq.org/llvm/compiler-rt/lib/builtins/assembly.h.html). I think if you rename .s
to .S
you can use the C preprocessor with things like #ifdef __APPLE__
.