Skip to content

Commit a72bfc5

Browse files
authored
[llvm-dlltool] Handle MIPS R4000 architecture (#114621)
1 parent a0e1fcc commit a72bfc5

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

llvm/lib/Object/COFFImportFile.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ static uint16_t getImgRelRelocation(MachineTypes Machine) {
133133
return IMAGE_REL_ARM64_ADDR32NB;
134134
case IMAGE_FILE_MACHINE_I386:
135135
return IMAGE_REL_I386_DIR32NB;
136+
case IMAGE_FILE_MACHINE_R4000:
137+
return IMAGE_REL_MIPS_REFWORDNB;
136138
}
137139
}
138140

llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ MachineTypes getEmulation(StringRef S) {
7979
.Case("arm", IMAGE_FILE_MACHINE_ARMNT)
8080
.Case("arm64", IMAGE_FILE_MACHINE_ARM64)
8181
.Case("arm64ec", IMAGE_FILE_MACHINE_ARM64EC)
82+
.Case("r4000", IMAGE_FILE_MACHINE_R4000)
8283
.Default(IMAGE_FILE_MACHINE_UNKNOWN);
8384
}
8485

@@ -93,6 +94,8 @@ MachineTypes getMachine(Triple T) {
9394
case Triple::aarch64:
9495
return T.isWindowsArm64EC() ? COFF::IMAGE_FILE_MACHINE_ARM64EC
9596
: COFF::IMAGE_FILE_MACHINE_ARM64;
97+
case Triple::mipsel:
98+
return COFF::IMAGE_FILE_MACHINE_R4000;
9699
default:
97100
return COFF::IMAGE_FILE_MACHINE_UNKNOWN;
98101
}
@@ -173,7 +176,8 @@ int llvm::dlltoolDriverMain(llvm::ArrayRef<const char *> ArgsArr) {
173176
(!Args.hasArgNoClaim(OPT_d) && !Args.hasArgNoClaim(OPT_l))) {
174177
Table.printHelp(outs(), "llvm-dlltool [options] file...", "llvm-dlltool",
175178
false);
176-
llvm::outs() << "\nTARGETS: i386, i386:x86-64, arm, arm64, arm64ec\n";
179+
llvm::outs()
180+
<< "\nTARGETS: i386, i386:x86-64, arm, arm64, arm64ec, r4000\n";
177181
return 1;
178182
}
179183

llvm/test/tools/llvm-dlltool/machine-opt.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
; RUN: llvm-readobj %t.a | FileCheck --check-prefix=ARM %s
77
; RUN: llvm-dlltool -m arm64 -d %s -l %t.a
88
; RUN: llvm-readobj %t.a | FileCheck --check-prefix=ARM64 %s
9+
; RUN: llvm-dlltool -m r4000 -d %s -l %t.a
10+
; RUN: llvm-readobj %t.a | FileCheck --check-prefix=MIPS %s
911

1012
LIBRARY test.dll
1113
EXPORTS
@@ -15,3 +17,4 @@ TestFunction
1517
; X86_64: Format: COFF-x86-64
1618
; ARM: Format: COFF-ARM{{$}}
1719
; ARM64: Format: COFF-ARM64
20+
; MIPS: Format: COFF-MIPS

0 commit comments

Comments
 (0)