Add intrinsics for the XSAVE instructions:
XSAVE, XSAVE64
XRSTOR, XRSTOR64
XSAVEOPT, XSAVEOPT64
XRSTORS, XRSTORS64
XSAVEC, XSAVEC64
XSAVES, XSAVES64
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/X86/X86InstrSystem.td | ||
---|---|---|
487 ↗ | (On Diff #35233) | Aren't these all missing the feature predicate checks? |
lib/Support/Host.cpp | ||
---|---|---|
830 ↗ | (On Diff #35233) | Is this needed? Bit 2 doesn't correspond to any instructions. It determines whether xgetbv allows ecx=1 |
lib/Support/Host.cpp | ||
---|---|---|
824 ↗ | (On Diff #35233) | Can we make this HasLeafD? I think the D would be more obvious capitalized. |
lib/Target/X86/X86.td | ||
---|---|---|
40 ↗ | (On Diff #35960) | These probably need to be added to their respective CPUs as well. But that can be done as a followup. |
test/CodeGen/X86/system-intrinsics-64.ll | ||
1 ↗ | (On Diff #35960) | The command line for this test doesn't enable xsaves or xsaveopt. Looks like its up to feature detection on the processor it runs on. |
Thanks for the comment.
I will upload a new patch.
test/CodeGen/X86/system-intrinsics-64.ll | ||
---|---|---|
1 ↗ | (On Diff #35960) | I will fix that, see updated patch. |
Fixed LIT tests by adding target specific attributes flag (-mattr).
To do that the LIT tests where split into separate files according to the attribute passed for each one.
lib/Target/X86/X86Subtarget.h | ||
---|---|---|
97 ↗ | (On Diff #36715) | I really wanted to approve this, but then I realized that these aren't set to false in the X86SubTarget constructor. Which I think is bad. |
lib/Target/X86/X86Subtarget.h | ||
---|---|---|
97 ↗ | (On Diff #36715) | No Problem :) |