Skip to content

Commit 8c3d630

Browse files
authored
Implement basic xtensa architecture triple parsing (#1576)
This reflects corresponding architecture component handling in LLVM: https://github.com/apple/llvm-project/blob/c7d5769e8229c589f9de3d5a88e36ffbfec164fa/llvm/lib/TargetParser/Triple.cpp#L572.
1 parent 9cdabfc commit 8c3d630

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

Sources/SwiftDriver/Utilities/Triple.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,8 @@ extension Triple {
520520
case renderscript32
521521
// 64-bit RenderScript
522522
case renderscript64
523+
// Xtensa instruction set
524+
case xtensa
523525

524526
static func parse(_ archName: Substring) -> Triple.Arch? {
525527
switch archName {
@@ -633,6 +635,8 @@ extension Triple {
633635
return .renderscript32
634636
case "renderscript64":
635637
return .renderscript64
638+
case "xtensa":
639+
return .xtensa
636640

637641
case _ where archName.hasPrefix("arm") || archName.hasPrefix("thumb") || archName.hasPrefix("aarch64"):
638642
return parseARMArch(archName)
@@ -822,7 +826,7 @@ extension Triple {
822826
case .arc, .arm, .armeb, .hexagon, .le32, .mips, .mipsel, .nvptx,
823827
.ppc, .r600, .riscv32, .sparc, .sparcel, .tce, .tcele, .thumb,
824828
.thumbeb, .x86, .xcore, .amdil, .hsail, .spir, .kalimba,.lanai,
825-
.shave, .wasm32, .renderscript32, .aarch64_32, .m68k:
829+
.shave, .wasm32, .renderscript32, .aarch64_32, .m68k, .xtensa:
826830
return 32
827831

828832
case .aarch64, .aarch64e, .aarch64_be, .amdgcn, .bpfel, .bpfeb, .le64, .mips64,
@@ -1425,7 +1429,8 @@ extension Triple {
14251429
case .tce: fallthrough
14261430
case .tcele: fallthrough
14271431
case .thumbeb: fallthrough
1428-
case .xcore:
1432+
case .xcore: fallthrough
1433+
case .xtensa:
14291434
return .elf
14301435

14311436
case .ppc, .ppc64:

Tests/SwiftDriverTests/TripleTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ final class TripleTests: XCTestCase {
4141
XCTAssertEqual(Triple("arm64-unknown-none").environment, nil)
4242
XCTAssertEqual(Triple("arm64-unknown-none").objectFormat, .elf)
4343

44+
XCTAssertEqual(Triple("xtensa-unknown-none").objectFormat, .elf)
45+
4446
XCTAssertEqual(Triple("arm64-apple-none-macho").arch, .aarch64)
4547
XCTAssertEqual(Triple("arm64-apple-none-macho").vendor, .apple)
4648
XCTAssertEqual(Triple("arm64-apple-none-macho").os, .noneOS)

0 commit comments

Comments
 (0)