The new variants like dsb ishnxs map naturally to CRm == {16, 20, 24, 28}, extending the existing space of immediates for __builtin_arm_dsb. This adds Clang and backend CodeGen support to emit them when processor support is present, and reasonable diagnostics when it's not.
Details
Details
- Reviewers
- None
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Event Timeline
Comment Actions
Thanks for the warning. Now that's settled down a bit I've updated the patch to the new regime.
Comment Actions
I'm not sure I agree with "map naturally", when CRm is a 4-bit field, and both bit 7 and bit 5 are different in the dsb <option> vs dsb <option>nXS instructions.
Are you willing to put this through review for the ACLE? __builtin_arm_dsb is the implementation of __dsb, so I worry that this would make this intrinsic non-portable for clang vs gcc.