The LLVM integrated assembler doesn't support the extensive macro system that GNU as does. To implement the code without the heavy macros I wrote a C program to use C's macros to unroll all the code and printf each instruction to create interim files that were combined to make skein_block_asm.S that LLVM would compile. As looping would require the assembler to have the macro support it lacks all the loop code was removed. As the SKEIN_DEBUG code wasn't in use by FreeBSD I also removed it.
Details
Details
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
lib/libmd/Makefile | ||
---|---|---|
120 | Need to remove MK_BINUTILS_BOOTSTRAP test here and either move AFLAGS to ACFLAGS or drop if not needed any longer |
Comment Actions
Ugh. Did you just preprocess it with as to de-macro it? It'd be nice to not lose that abstraction. Does IAS not support any form of macros?
Comment Actions
Here is the files I use to create skein_block_asm.S - https://github.com/gldisater/genskein
When I did the original work in Nov, I wasn't able to get even a simple macro to work with the rotation constants (RC_256_0_0, etc.) but I found the bug in the genskein.c that was causing that issue, as well as a bug in the SkeinMix macro.