Skip to content

Commit 9836c44

Browse files
committed
[CHERIoT] Create an XCheriotV1 processor feature.
1 parent b6dc648 commit 9836c44

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ void validate(const Triple &TT, const FeatureBitset &FeatureBits) {
145145
if (FeatureBits[RISCV::Feature32Bit] &&
146146
FeatureBits[RISCV::Feature64Bit])
147147
report_fatal_error("RV32 and RV64 can't be combined");
148+
if (FeatureBits[RISCV::FeatureVendorXCheriotV1]) {
149+
if (!FeatureBits[RISCV::FeatureVendorXCheri])
150+
report_fatal_error("XCheriotV1 extension requires XCheri extension");
151+
if (!FeatureBits[RISCV::FeatureCapMode])
152+
report_fatal_error("XCheriotV1 extension requires CapMode");
153+
}
148154
}
149155

150156
llvm::Expected<std::unique_ptr<RISCVISAInfo>>

llvm/lib/Target/RISCV/RISCVFeatures.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,6 +1397,8 @@ def IsPureCapABI
13971397
def NotPureCapABI
13981398
: Predicate<"!RISCVABI::isCheriPureCapABI(Subtarget->getTargetABI())">;
13991399

1400+
def FeatureVendorXCheriotV1 : RISCVExtension<0, 0, "Implements XCheriotV1 extension">;
1401+
14001402
def FeatureRelax
14011403
: SubtargetFeature<"relax", "EnableLinkerRelax", "true",
14021404
"Enable Linker relaxation.">;

llvm/lib/Target/RISCV/RISCVProcessors.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,7 @@ def CHERIOT : RISCVProcessorModel<"cheriot",
601601
NoSchedModel,
602602
[Feature32Bit,
603603
FeatureVendorXCheri,
604+
FeatureVendorXCheriotV1,
604605
FeatureCapMode,
605606
FeatureStdExtC,
606607
FeatureStdExtE,

llvm/unittests/TargetParser/RISCVISAInfoTest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,7 @@ R"(All available -march extensions for RISC-V
10771077
svpbmt 1.0
10781078
svvptc 1.0
10791079
xcheri 0.0
1080+
xcheriot 0.0
10801081
xcvalu 1.0
10811082
xcvbi 1.0
10821083
xcvbitmanip 1.0

0 commit comments

Comments
 (0)