mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-03 14:31:10 +00:00
[AArch64] Rename v8.1a from "extension" to "architecture"
v8.1a is renamed to architecture, accordingly to approaches in ARM backend. Excess generic cpu is removed. Intended use: "generic" cpu with "v8.1a" subtarget feature Reviewers: jmolloy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8766 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233810 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4eeb5e9c69
commit
65f303fd0c
@ -32,9 +32,6 @@ def FeatureCrypto : SubtargetFeature<"crypto", "HasCrypto", "true",
|
||||
def FeatureCRC : SubtargetFeature<"crc", "HasCRC", "true",
|
||||
"Enable ARMv8 CRC-32 checksum instructions">;
|
||||
|
||||
def FeatureV8_1a : SubtargetFeature<"v8.1a", "HasV8_1a", "true",
|
||||
"Enable ARMv8.1a extensions", [FeatureCRC]>;
|
||||
|
||||
/// Cyclone has register move instructions which are "free".
|
||||
def FeatureZCRegMove : SubtargetFeature<"zcm", "HasZeroCycleRegMove", "true",
|
||||
"Has zero-cycle register moves">;
|
||||
@ -43,6 +40,13 @@ def FeatureZCRegMove : SubtargetFeature<"zcm", "HasZeroCycleRegMove", "true",
|
||||
def FeatureZCZeroing : SubtargetFeature<"zcz", "HasZeroCycleZeroing", "true",
|
||||
"Has zero-cycle zeroing instructions">;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Architectures.
|
||||
//
|
||||
|
||||
def HasV8_1aOps : SubtargetFeature<"v8.1a", "HasV8_1aOps", "true",
|
||||
"Support ARM v8.1a instructions", [FeatureCRC]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Register File Description
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -92,10 +96,6 @@ def : ProcessorModel<"generic", NoSchedModel, [FeatureFPARMv8,
|
||||
FeatureNEON,
|
||||
FeatureCRC]>;
|
||||
|
||||
def : ProcessorModel<"generic-armv8.1-a", NoSchedModel, [FeatureV8_1a,
|
||||
FeatureNEON,
|
||||
FeatureCrypto]>;
|
||||
|
||||
def : ProcessorModel<"cortex-a53", CortexA53Model, [ProcA53]>;
|
||||
def : ProcessorModel<"cortex-a57", CortexA57Model, [ProcA57]>;
|
||||
// FIXME: Cortex-A72 is currently modelled as an Cortex-A57.
|
||||
|
@ -14,6 +14,8 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ARM Instruction Predicate Definitions.
|
||||
//
|
||||
def HasV8_1a : Predicate<"Subtarget->hasV8_1aOps()">,
|
||||
AssemblerPredicate<"HasV8_1aOps", "armv8.1a">;
|
||||
def HasFPARMv8 : Predicate<"Subtarget->hasFPARMv8()">,
|
||||
AssemblerPredicate<"FeatureFPARMv8", "fp-armv8">;
|
||||
def HasNEON : Predicate<"Subtarget->hasNEON()">,
|
||||
@ -22,8 +24,6 @@ def HasCrypto : Predicate<"Subtarget->hasCrypto()">,
|
||||
AssemblerPredicate<"FeatureCrypto", "crypto">;
|
||||
def HasCRC : Predicate<"Subtarget->hasCRC()">,
|
||||
AssemblerPredicate<"FeatureCRC", "crc">;
|
||||
def HasV8_1a : Predicate<"Subtarget->hasV8_1a()">,
|
||||
AssemblerPredicate<"FeatureV8_1a", "v8.1a">;
|
||||
def IsLE : Predicate<"Subtarget->isLittleEndian()">;
|
||||
def IsBE : Predicate<"!Subtarget->isLittleEndian()">;
|
||||
def IsCyclone : Predicate<"Subtarget->isCyclone()">;
|
||||
|
@ -47,8 +47,9 @@ AArch64Subtarget::AArch64Subtarget(const std::string &TT,
|
||||
const std::string &FS,
|
||||
const TargetMachine &TM, bool LittleEndian)
|
||||
: AArch64GenSubtargetInfo(TT, CPU, FS), ARMProcFamily(Others),
|
||||
HasV8_1aOps(false),
|
||||
HasFPARMv8(false), HasNEON(false), HasCrypto(false), HasCRC(false),
|
||||
HasV8_1a(false), HasZeroCycleRegMove(false), HasZeroCycleZeroing(false),
|
||||
HasZeroCycleRegMove(false), HasZeroCycleZeroing(false),
|
||||
IsLittle(LittleEndian), CPUString(CPU), TargetTriple(TT), FrameLowering(),
|
||||
InstrInfo(initializeSubtargetDependencies(FS)),
|
||||
TSInfo(TM.getDataLayout()), TLInfo(TM, *this) {}
|
||||
|
@ -37,11 +37,12 @@ protected:
|
||||
/// ARMProcFamily - ARM processor family: Cortex-A53, Cortex-A57, and others.
|
||||
ARMProcFamilyEnum ARMProcFamily;
|
||||
|
||||
bool HasV8_1aOps;
|
||||
|
||||
bool HasFPARMv8;
|
||||
bool HasNEON;
|
||||
bool HasCrypto;
|
||||
bool HasCRC;
|
||||
bool HasV8_1a;
|
||||
|
||||
// HasZeroCycleRegMove - Has zero-cycle register mov instructions.
|
||||
bool HasZeroCycleRegMove;
|
||||
@ -93,6 +94,8 @@ public:
|
||||
return isCortexA53() || isCortexA57();
|
||||
}
|
||||
|
||||
bool hasV8_1aOps() const { return HasV8_1aOps; }
|
||||
|
||||
bool hasZeroCycleRegMove() const { return HasZeroCycleRegMove; }
|
||||
|
||||
bool hasZeroCycleZeroing() const { return HasZeroCycleZeroing; }
|
||||
@ -101,7 +104,6 @@ public:
|
||||
bool hasNEON() const { return HasNEON; }
|
||||
bool hasCrypto() const { return HasCrypto; }
|
||||
bool hasCRC() const { return HasCRC; }
|
||||
bool hasV8_1a() const { return HasV8_1a; }
|
||||
|
||||
bool isLittleEndian() const { return IsLittle; }
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user