diff options
| author | Vladimir Sukharev <vladimir.sukharev@arm.com> | 2015-04-16 15:20:51 +0000 |
|---|---|---|
| committer | Vladimir Sukharev <vladimir.sukharev@arm.com> | 2015-04-16 15:20:51 +0000 |
| commit | 251ce0c2dbe2e428560f2c41382ff21ac36a2040 (patch) | |
| tree | a668eb051b2d581068dc2c9f26d71e98490f0a10 /llvm/lib/Target/AArch64 | |
| parent | feaf512839ebb7b8ccf11fcacde86f82702174a0 (diff) | |
| download | bcm5719-llvm-251ce0c2dbe2e428560f2c41382ff21ac36a2040.tar.gz bcm5719-llvm-251ce0c2dbe2e428560f2c41382ff21ac36a2040.zip | |
[AArch64] Add v8.1a "Privileged Access Never" extension
Reviewers: jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8498
llvm-svn: 235104
Diffstat (limited to 'llvm/lib/Target/AArch64')
| -rw-r--r-- | llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp | 13 | ||||
| -rw-r--r-- | llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h | 8 |
2 files changed, 18 insertions, 3 deletions
diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp index 467e7f7a76d..31ffb51ab0b 100644 --- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp +++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp @@ -142,7 +142,10 @@ AArch64PRFM::PRFMMapper::PRFMMapper() const AArch64NamedImmMapper::Mapping AArch64PState::PStateMapper::PStateMappings[] = { {"spsel", SPSel, 0}, {"daifset", DAIFSet, 0}, - {"daifclr", DAIFClr, 0} + {"daifclr", DAIFClr, 0}, + + // v8.1a "Privileged Access Never" extension-specific PStates + {"pan", PAN, AArch64::HasV8_1aOps}, }; AArch64PState::PStateMapper::PStateMapper() @@ -267,7 +270,10 @@ const AArch64NamedImmMapper::Mapping AArch64SysReg::MSRMapper::MSRMappings[] = { {"icc_dir_el1", ICC_DIR_EL1, 0}, {"icc_sgi1r_el1", ICC_SGI1R_EL1, 0}, {"icc_asgi1r_el1", ICC_ASGI1R_EL1, 0}, - {"icc_sgi0r_el1", ICC_SGI0R_EL1, 0} + {"icc_sgi0r_el1", ICC_SGI0R_EL1, 0}, + + // v8.1a "Privileged Access Never" extension-specific system registers + {"pan", PAN, AArch64::HasV8_1aOps}, }; AArch64SysReg::MSRMapper::MSRMapper() { @@ -756,6 +762,9 @@ const AArch64NamedImmMapper::Mapping AArch64SysReg::SysRegMapper::SysRegMappings // Cyclone registers {"cpm_ioacc_ctl_el3", CPM_IOACC_CTL_EL3, AArch64::ProcCyclone}, + + // v8.1a "Privileged Access Never" extension-specific system registers + {"pan", PAN, AArch64::HasV8_1aOps}, }; uint32_t diff --git a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h index 1594fa4f0cd..60a83a893e9 100644 --- a/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h +++ b/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h @@ -447,7 +447,10 @@ namespace AArch64PState { Invalid = -1, SPSel = 0x05, DAIFSet = 0x1e, - DAIFClr = 0x1f + DAIFClr = 0x1f, + + // v8.1a "Privileged Access Never" extension-specific PStates + PAN = 0x04, }; struct PStateMapper : AArch64NamedImmMapper { @@ -1135,6 +1138,9 @@ namespace AArch64SysReg { ICH_LR14_EL2 = 0xe66e, // 11 100 1100 1101 110 ICH_LR15_EL2 = 0xe66f, // 11 100 1100 1101 111 + // v8.1a "Privileged Access Never" extension-specific system registers + PAN = 0xc213, // 11 000 0100 0010 011 + // Cyclone specific system registers CPM_IOACC_CTL_EL3 = 0xff90, }; |

