Skip to content

Commit 7ef6b21

Browse files
ADKasterbrad0
authored andcommitted
[llvm] Add triple for SerenityOS
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D154395
1 parent 32521bb commit 7ef6b21

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

llvm/include/llvm/TargetParser/Triple.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,8 @@ class Triple {
221221
Emscripten,
222222
ShaderModel, // DirectX ShaderModel
223223
LiteOS,
224-
LastOSType = LiteOS
224+
Serenity,
225+
LastOSType = Serenity
225226
};
226227
enum EnvironmentType {
227228
UnknownEnvironment,
@@ -668,6 +669,10 @@ class Triple {
668669
return getOS() == Triple::AIX;
669670
}
670671

672+
bool isOSSerenity() const {
673+
return getOS() == Triple::Serenity;
674+
}
675+
671676
/// Tests whether the OS uses the ELF binary format.
672677
bool isOSBinFormatELF() const {
673678
return getObjectFormat() == Triple::ELF;

llvm/lib/TargetParser/Triple.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ StringRef Triple::getOSTypeName(OSType Kind) {
264264
case PS5: return "ps5";
265265
case RTEMS: return "rtems";
266266
case Solaris: return "solaris";
267+
case Serenity: return "serenity";
267268
case TvOS: return "tvos";
268269
case UEFI: return "uefi";
269270
case WASI: return "wasi";
@@ -641,6 +642,7 @@ static Triple::OSType parseOS(StringRef OSName) {
641642
.StartsWith("emscripten", Triple::Emscripten)
642643
.StartsWith("shadermodel", Triple::ShaderModel)
643644
.StartsWith("liteos", Triple::LiteOS)
645+
.StartsWith("serenity", Triple::Serenity)
644646
.Default(Triple::UnknownOS);
645647
}
646648

llvm/unittests/TargetParser/TripleTest.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,6 +1003,18 @@ TEST(TripleTest, ParsedIDs) {
10031003
EXPECT_EQ(Triple::LiteOS, T.getOS());
10041004
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
10051005

1006+
T = Triple("x86_64-pc-serenity");
1007+
EXPECT_EQ(Triple::x86_64, T.getArch());
1008+
EXPECT_EQ(Triple::PC, T.getVendor());
1009+
EXPECT_EQ(Triple::Serenity, T.getOS());
1010+
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
1011+
1012+
T = Triple("aarch64-pc-serenity");
1013+
EXPECT_EQ(Triple::aarch64, T.getArch());
1014+
EXPECT_EQ(Triple::PC, T.getVendor());
1015+
EXPECT_EQ(Triple::Serenity, T.getOS());
1016+
EXPECT_EQ(Triple::UnknownEnvironment, T.getEnvironment());
1017+
10061018
T = Triple("huh");
10071019
EXPECT_EQ(Triple::UnknownArch, T.getArch());
10081020
}

0 commit comments

Comments
 (0)