14
14
#include " llvm/ADT/StringRef.h"
15
15
#include " llvm/ADT/StringSwitch.h"
16
16
#include " llvm/ADT/iterator_range.h"
17
- #include " llvm/BinaryFormat/COFF.h"
18
17
#include " llvm/Object/Binary.h"
19
18
#include " llvm/Object/COFF.h"
20
19
#include " llvm/Object/Error.h"
21
20
#include " llvm/Object/ObjectFile.h"
21
+ #include " llvm/Object/WindowsMachineFlag.h"
22
22
#include " llvm/Support/BinaryStreamReader.h"
23
23
#include " llvm/Support/Endian.h"
24
24
#include " llvm/Support/Error.h"
25
25
#include " llvm/Support/ErrorHandling.h"
26
26
#include " llvm/Support/MathExtras.h"
27
27
#include " llvm/Support/MemoryBufferRef.h"
28
- #include " llvm/TargetParser/Triple.h"
29
28
#include < algorithm>
30
29
#include < cassert>
31
30
#include < cinttypes>
@@ -1072,20 +1071,7 @@ StringRef COFFObjectFile::getFileFormatName() const {
1072
1071
}
1073
1072
1074
1073
Triple::ArchType COFFObjectFile::getArch () const {
1075
- switch (getMachine ()) {
1076
- case COFF::IMAGE_FILE_MACHINE_I386:
1077
- return Triple::x86;
1078
- case COFF::IMAGE_FILE_MACHINE_AMD64:
1079
- return Triple::x86_64;
1080
- case COFF::IMAGE_FILE_MACHINE_ARMNT:
1081
- return Triple::thumb;
1082
- case COFF::IMAGE_FILE_MACHINE_ARM64:
1083
- case COFF::IMAGE_FILE_MACHINE_ARM64EC:
1084
- case COFF::IMAGE_FILE_MACHINE_ARM64X:
1085
- return Triple::aarch64;
1086
- default :
1087
- return Triple::UnknownArch;
1088
- }
1074
+ return getMachineArchType (getMachine ());
1089
1075
}
1090
1076
1091
1077
Expected<uint64_t > COFFObjectFile::getStartAddress () const {
@@ -1320,8 +1306,8 @@ COFFObjectFile::getRelocations(const coff_section *Sec) const {
1320
1306
return #reloc_type;
1321
1307
1322
1308
StringRef COFFObjectFile::getRelocationTypeName (uint16_t Type) const {
1323
- switch (getMachine ()) {
1324
- case COFF::IMAGE_FILE_MACHINE_AMD64 :
1309
+ switch (getArch ()) {
1310
+ case Triple::x86_64 :
1325
1311
switch (Type) {
1326
1312
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ABSOLUTE);
1327
1313
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_AMD64_ADDR64);
@@ -1344,7 +1330,7 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const {
1344
1330
return " Unknown" ;
1345
1331
}
1346
1332
break ;
1347
- case COFF::IMAGE_FILE_MACHINE_ARMNT :
1333
+ case Triple::thumb :
1348
1334
switch (Type) {
1349
1335
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ABSOLUTE);
1350
1336
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM_ADDR32);
@@ -1367,9 +1353,7 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const {
1367
1353
return " Unknown" ;
1368
1354
}
1369
1355
break ;
1370
- case COFF::IMAGE_FILE_MACHINE_ARM64:
1371
- case COFF::IMAGE_FILE_MACHINE_ARM64EC:
1372
- case COFF::IMAGE_FILE_MACHINE_ARM64X:
1356
+ case Triple::aarch64:
1373
1357
switch (Type) {
1374
1358
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ABSOLUTE);
1375
1359
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_ARM64_ADDR32);
@@ -1393,7 +1377,7 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const {
1393
1377
return " Unknown" ;
1394
1378
}
1395
1379
break ;
1396
- case COFF::IMAGE_FILE_MACHINE_I386 :
1380
+ case Triple::x86 :
1397
1381
switch (Type) {
1398
1382
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_ABSOLUTE);
1399
1383
LLVM_COFF_SWITCH_RELOC_TYPE_NAME (IMAGE_REL_I386_DIR16);
@@ -1941,19 +1925,17 @@ ResourceSectionRef::getContents(const coff_resource_data_entry &Entry) {
1941
1925
// the expected type.
1942
1926
const coff_relocation &R = **RelocsForOffset.first ;
1943
1927
uint16_t RVAReloc;
1944
- switch (Obj->getMachine ()) {
1945
- case COFF::IMAGE_FILE_MACHINE_I386 :
1928
+ switch (Obj->getArch ()) {
1929
+ case Triple::x86 :
1946
1930
RVAReloc = COFF::IMAGE_REL_I386_DIR32NB;
1947
1931
break ;
1948
- case COFF::IMAGE_FILE_MACHINE_AMD64 :
1932
+ case Triple::x86_64 :
1949
1933
RVAReloc = COFF::IMAGE_REL_AMD64_ADDR32NB;
1950
1934
break ;
1951
- case COFF::IMAGE_FILE_MACHINE_ARMNT :
1935
+ case Triple::thumb :
1952
1936
RVAReloc = COFF::IMAGE_REL_ARM_ADDR32NB;
1953
1937
break ;
1954
- case COFF::IMAGE_FILE_MACHINE_ARM64:
1955
- case COFF::IMAGE_FILE_MACHINE_ARM64EC:
1956
- case COFF::IMAGE_FILE_MACHINE_ARM64X:
1938
+ case Triple::aarch64:
1957
1939
RVAReloc = COFF::IMAGE_REL_ARM64_ADDR32NB;
1958
1940
break ;
1959
1941
default :
0 commit comments