Skip to content

Commit bfd7544

Browse files
committed
[CHERIoT] Preserve/propagate the cheriot subarch in more places.
1 parent 6a71848 commit bfd7544

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -791,8 +791,9 @@ static llvm::Triple computeTargetTriple(const Driver &D,
791791
ArchName, /*EnableExperimentalExtensions=*/true);
792792
if (!llvm::errorToBool(ISAInfo.takeError())) {
793793
unsigned XLen = (*ISAInfo)->getXLen();
794+
// CHERIOT: Preserve the subarch if it was set.
794795
if (XLen == 32)
795-
Target.setArch(llvm::Triple::riscv32);
796+
Target.setArch(llvm::Triple::riscv32, Target.getSubArch());
796797
else if (XLen == 64)
797798
Target.setArch(llvm::Triple::riscv64);
798799
}

llvm/lib/TargetParser/Triple.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,15 @@ StringRef Triple::getArchName(ArchType Kind, SubArchType SubArch) {
159159
break;
160160
}
161161
break;
162+
case Triple::riscv32: {
163+
switch (SubArch) {
164+
case Triple::RISCV32SubArch_cheriot_v1:
165+
return "riscv32cheriotv1";
166+
default:
167+
break;
168+
}
169+
break;
170+
}
162171
default:
163172
break;
164173
}

0 commit comments

Comments
 (0)