For AArch64:
- Crypto means sm4 + sha3 + sha2 + aes for Armv8.4-A and up,
- and sha2 + aes for Armv8.3-A and earlier.
And for AArch32:
Crypto means sha2 + aes, because the Armv8.2-A crypto instructions
were added to AArch64 only.
Paths
| Differential D50179
[AArch64][ARM] Context sensitive meaning of option "crypto" ClosedPublic Authored by SjoerdMeijer on Aug 2 2018, 4:39 AM.
Details Summary For AArch64:
And for AArch32:
Diff Detail
Event Timelineefriedma added inline comments.
Comment Actions Hi Eli, thanks for the feedback.
I appreciate there is room for improvement here, which is an understatement! :) I probably should have mentioned earlier that my colleague is working on targetparser and options, and he will send the proposal in the form of an RFC to the dev list soon. Very briefly, the proposal will elaborate on how we want to capture/enforce architecture extension dependencies (I believe thus also disallow architecturally invalid combinations), imply options, and e.g. warn on redundant options. I want to move the crypto logic to this new framework as soon it is there. Thus, for the time being, this is a stopgap to demonstrate what we want to achieve (with crypto), and also quite importantly, we have something that works today. But again, I fully agree that the current implementation is far from ideal, but hopefully with these explanations is somewhat acceptable. Comment Actions Added FIXMEs, like in D50229, that this needs reimplementation too after the TargerParser rewrite. About v8.5, the ISA description is now available here: But we will add support for that when we upstream v8.5 support, so will be added later. This revision is now accepted and ready to land.Oct 3 2018, 4:02 PM Closed by commit rL343758: [AArch64][ARM] Context sensitive meaning of crypto (authored by SjoerdMeijer). · Explain WhyOct 4 2018, 12:40 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 168233 cfe/trunk/lib/Driver/ToolChains/Arch/AArch64.cpp
cfe/trunk/lib/Driver/ToolChains/Arch/ARM.cpp
cfe/trunk/test/Driver/arm-features.c
cfe/trunk/test/Preprocessor/aarch64-target-features.c
|