summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h
diff options
context:
space:
mode:
authorBradley Smith <bradley.smith@arm.com>2014-05-01 10:25:36 +0000
committerBradley Smith <bradley.smith@arm.com>2014-05-01 10:25:36 +0000
commitf57d5ca234f0e72ab92c1a36136f69cc93bcbbd5 (patch)
tree08893c3ed3143b606a94b818bfc29ed67e579caf /llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h
parentd92a3fa212aa91e1466ad87768ffc08d7238e079 (diff)
downloadbcm5719-llvm-f57d5ca234f0e72ab92c1a36136f69cc93bcbbd5.tar.gz
bcm5719-llvm-f57d5ca234f0e72ab92c1a36136f69cc93bcbbd5.zip
[ARM64] Conditionalize CPU specific system registers on subtarget features
llvm-svn: 207742
Diffstat (limited to 'llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h')
-rw-r--r--llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h b/llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h
index ef4caefab94..8075d6b37c9 100644
--- a/llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h
+++ b/llvm/lib/Target/ARM64/Utils/ARM64BaseInfo.h
@@ -1136,8 +1136,10 @@ namespace ARM64SysReg {
ICH_LR13_EL2 = 0xe66d, // 11 100 1100 1101 101
ICH_LR14_EL2 = 0xe66e, // 11 100 1100 1101 110
ICH_LR15_EL2 = 0xe66f, // 11 100 1100 1101 111
+ };
- // Cyclone specific system registers
+ // Cyclone specific system registers
+ enum CycloneSysRegValues {
CPM_IOACC_CTL_EL3 = 0xff90
};
@@ -1147,23 +1149,25 @@ namespace ARM64SysReg {
// this one case.
struct SysRegMapper {
static const ARM64NamedImmMapper::Mapping SysRegPairs[];
+ static const ARM64NamedImmMapper::Mapping CycloneSysRegPairs[];
const ARM64NamedImmMapper::Mapping *InstPairs;
size_t NumInstPairs;
+ uint64_t FeatureBits;
- SysRegMapper() {}
+ SysRegMapper(uint64_t FeatureBits) : FeatureBits(FeatureBits) { }
uint32_t fromString(StringRef Name, bool &Valid) const;
std::string toString(uint32_t Bits, bool &Valid) const;
};
struct MSRMapper : SysRegMapper {
static const ARM64NamedImmMapper::Mapping MSRPairs[];
- MSRMapper();
+ MSRMapper(uint64_t FeatureBits);
};
struct MRSMapper : SysRegMapper {
static const ARM64NamedImmMapper::Mapping MRSPairs[];
- MRSMapper();
+ MRSMapper(uint64_t FeatureBits);
};
uint32_t ParseGenericRegister(StringRef Name, bool &Valid);
OpenPOWER on IntegriCloud