mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-08 06:32:24 +00:00
[X86] Remove two feature flags that covered sets of instructions that have no patterns or intrinsics. Since we don't check feature flags in the assembler parser for any instruction sets, these flags don't provide any value. This frees up 2 of the fully utilized feature flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228282 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
81eb6ca158
commit
b8fa51de42
@ -164,14 +164,10 @@ def FeatureADX : SubtargetFeature<"adx", "HasADX", "true",
|
||||
def FeatureSHA : SubtargetFeature<"sha", "HasSHA", "true",
|
||||
"Enable SHA instructions",
|
||||
[FeatureSSE2]>;
|
||||
def FeatureSGX : SubtargetFeature<"sgx", "HasSGX", "true",
|
||||
"Support SGX instructions">;
|
||||
def FeaturePRFCHW : SubtargetFeature<"prfchw", "HasPRFCHW", "true",
|
||||
"Support PRFCHW instructions">;
|
||||
def FeatureRDSEED : SubtargetFeature<"rdseed", "HasRDSEED", "true",
|
||||
"Support RDSEED instruction">;
|
||||
def FeatureSMAP : SubtargetFeature<"smap", "HasSMAP", "true",
|
||||
"Support SMAP instructions">;
|
||||
def FeatureLeaForSP : SubtargetFeature<"lea-sp", "UseLeaForSP", "true",
|
||||
"Use LEA for adjusting the stack pointer">;
|
||||
def FeatureSlowDivide32 : SubtargetFeature<"idivl-to-divb",
|
||||
@ -372,7 +368,6 @@ class BroadwellProc<string Name> : ProcessorModel<Name, HaswellModel, [
|
||||
FeatureHLE,
|
||||
FeatureADX,
|
||||
FeatureRDSEED,
|
||||
FeatureSMAP,
|
||||
FeatureSlowIncDec
|
||||
]>;
|
||||
def : BroadwellProc<"broadwell">;
|
||||
@ -395,7 +390,7 @@ class SkylakeProc<string Name> : ProcessorModel<Name, HaswellModel,
|
||||
FeatureAES, FeaturePCLMUL, FeatureRDRAND, FeatureF16C,
|
||||
FeatureFSGSBase, FeatureMOVBE, FeatureLZCNT, FeatureBMI,
|
||||
FeatureBMI2, FeatureFMA, FeatureRTM, FeatureHLE,
|
||||
FeatureSlowIncDec, FeatureSGX]>;
|
||||
FeatureSlowIncDec]>;
|
||||
def : SkylakeProc<"skylake">;
|
||||
def : SkylakeProc<"skx">; // Legacy alias.
|
||||
|
||||
|
@ -774,10 +774,8 @@ def HasHLE : Predicate<"Subtarget->hasHLE()">;
|
||||
def HasTSX : Predicate<"Subtarget->hasRTM() || Subtarget->hasHLE()">;
|
||||
def HasADX : Predicate<"Subtarget->hasADX()">;
|
||||
def HasSHA : Predicate<"Subtarget->hasSHA()">;
|
||||
def HasSGX : Predicate<"Subtarget->hasSGX()">;
|
||||
def HasPRFCHW : Predicate<"Subtarget->hasPRFCHW()">;
|
||||
def HasRDSEED : Predicate<"Subtarget->hasRDSEED()">;
|
||||
def HasSMAP : Predicate<"Subtarget->hasSMAP()">;
|
||||
def HasPrefetchW : Predicate<"Subtarget->hasPRFCHW()">;
|
||||
def FPStackf32 : Predicate<"!Subtarget->hasSSE1()">;
|
||||
def FPStackf64 : Predicate<"!Subtarget->hasSSE2()">;
|
||||
|
@ -17,8 +17,8 @@
|
||||
|
||||
// ENCLS - Execute an Enclave System Function of Specified Leaf Number
|
||||
def ENCLS : I<0x01, MRM_CF, (outs), (ins),
|
||||
"encls", []>, TB, Requires<[HasSGX]>;
|
||||
"encls", []>, TB;
|
||||
|
||||
// ENCLU - Execute an Enclave User Function of Specified Leaf Number
|
||||
def ENCLU : I<0x01, MRM_D7, (outs), (ins),
|
||||
"enclu", []>, TB, Requires<[HasSGX]>;
|
||||
"enclu", []>, TB;
|
||||
|
@ -560,7 +560,7 @@ def INVPCID64 : I<0x82, MRMSrcMem, (outs), (ins GR64:$src1, i128mem:$src2),
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// SMAP Instruction
|
||||
let Predicates = [HasSMAP], Defs = [EFLAGS] in {
|
||||
let Defs = [EFLAGS] in {
|
||||
def CLAC : I<0x01, MRM_CA, (outs), (ins), "clac", []>, TB;
|
||||
def STAC : I<0x01, MRM_CB, (outs), (ins), "stac", []>, TB;
|
||||
}
|
||||
|
@ -257,10 +257,8 @@ void X86Subtarget::initializeEnvironment() {
|
||||
HasVLX = false;
|
||||
HasADX = false;
|
||||
HasSHA = false;
|
||||
HasSGX = false;
|
||||
HasPRFCHW = false;
|
||||
HasRDSEED = false;
|
||||
HasSMAP = false;
|
||||
IsBTMemSlow = false;
|
||||
IsSHLDSlow = false;
|
||||
IsUAMemFast = false;
|
||||
|
@ -134,18 +134,12 @@ protected:
|
||||
/// Processor has SHA instructions.
|
||||
bool HasSHA;
|
||||
|
||||
/// Processor has SGX instructions.
|
||||
bool HasSGX;
|
||||
|
||||
/// Processor has PRFCHW instructions.
|
||||
bool HasPRFCHW;
|
||||
|
||||
/// Processor has RDSEED instructions.
|
||||
bool HasRDSEED;
|
||||
|
||||
/// Processor has SMAP instructions.
|
||||
bool HasSMAP;
|
||||
|
||||
/// True if BT (bit test) of memory instructions are slow.
|
||||
bool IsBTMemSlow;
|
||||
|
||||
@ -364,10 +358,8 @@ public:
|
||||
bool hasHLE() const { return HasHLE; }
|
||||
bool hasADX() const { return HasADX; }
|
||||
bool hasSHA() const { return HasSHA; }
|
||||
bool hasSGX() const { return HasSGX; }
|
||||
bool hasPRFCHW() const { return HasPRFCHW; }
|
||||
bool hasRDSEED() const { return HasRDSEED; }
|
||||
bool hasSMAP() const { return HasSMAP; }
|
||||
bool isBTMemSlow() const { return IsBTMemSlow; }
|
||||
bool isSHLDSlow() const { return IsSHLDSlow; }
|
||||
bool isUnalignedMemAccessFast() const { return IsUAMemFast; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user