[PATCH] D156454: [Object] [NFC] Use llvm::COFF::is64Bit in COFF import file implementation.

Jacek Caban via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 27 09:43:26 PDT 2023


jacek created this revision.
jacek added reviewers: mstojanovic, jhenderson, efriedma.
Herald added a subscriber: hiraditya.
Herald added a project: All.
jacek requested review of this revision.
Herald added subscribers: llvm-commits, wangpc.
Herald added a project: LLVM.

Similar to D156450 <https://reviews.llvm.org/D156450>, use the new helper instead of duplicating it.


https://reviews.llvm.org/D156454

Files:
  llvm/lib/Object/COFFImportFile.cpp


Index: llvm/lib/Object/COFFImportFile.cpp
===================================================================
--- llvm/lib/Object/COFFImportFile.cpp
+++ llvm/lib/Object/COFFImportFile.cpp
@@ -33,21 +33,6 @@
 namespace llvm {
 namespace object {
 
-static bool is32bit(MachineTypes Machine) {
-  switch (Machine) {
-  default:
-    llvm_unreachable("unsupported machine");
-  case IMAGE_FILE_MACHINE_ARM64:
-  case IMAGE_FILE_MACHINE_ARM64EC:
-  case IMAGE_FILE_MACHINE_ARM64X:
-  case IMAGE_FILE_MACHINE_AMD64:
-    return false;
-  case IMAGE_FILE_MACHINE_ARMNT:
-  case IMAGE_FILE_MACHINE_I386:
-    return true;
-  }
-}
-
 static uint16_t getImgRelRelocation(MachineTypes Machine) {
   switch (Machine) {
   default:
@@ -204,7 +189,7 @@
           (ImportName.size() + 1)),
       u32(NumberOfSymbols),
       u16(0),
-      u16(is32bit(Machine) ? IMAGE_FILE_32BIT_MACHINE : C_Invalid),
+      u16(is64Bit(Machine) ? C_Invalid : IMAGE_FILE_32BIT_MACHINE),
   };
   append(Buffer, Header);
 
@@ -340,7 +325,7 @@
           sizeof(coff_import_directory_table_entry)),
       u32(NumberOfSymbols),
       u16(0),
-      u16(is32bit(Machine) ? IMAGE_FILE_32BIT_MACHINE : C_Invalid),
+      u16(is64Bit(Machine) ? C_Invalid : IMAGE_FILE_32BIT_MACHINE),
   };
   append(Buffer, Header);
 
@@ -389,7 +374,7 @@
 NewArchiveMember ObjectFactory::createNullThunk(std::vector<uint8_t> &Buffer) {
   const uint32_t NumberOfSections = 2;
   const uint32_t NumberOfSymbols = 1;
-  uint32_t VASize = is32bit(Machine) ? 4 : 8;
+  uint32_t VASize = is64Bit(Machine) ? 8 : 4;
 
   // COFF Header
   coff_file_header Header{
@@ -403,7 +388,7 @@
           VASize),
       u32(NumberOfSymbols),
       u16(0),
-      u16(is32bit(Machine) ? IMAGE_FILE_32BIT_MACHINE : C_Invalid),
+      u16(is64Bit(Machine) ? C_Invalid : IMAGE_FILE_32BIT_MACHINE),
   };
   append(Buffer, Header);
 
@@ -418,8 +403,8 @@
        u32(0),
        u16(0),
        u16(0),
-       u32((is32bit(Machine) ? IMAGE_SCN_ALIGN_4BYTES
-                             : IMAGE_SCN_ALIGN_8BYTES) |
+       u32((is64Bit(Machine) ? IMAGE_SCN_ALIGN_8BYTES
+                             : IMAGE_SCN_ALIGN_4BYTES) |
            IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ |
            IMAGE_SCN_MEM_WRITE)},
       {{'.', 'i', 'd', 'a', 't', 'a', '$', '4'},
@@ -432,8 +417,8 @@
        u32(0),
        u16(0),
        u16(0),
-       u32((is32bit(Machine) ? IMAGE_SCN_ALIGN_4BYTES
-                             : IMAGE_SCN_ALIGN_8BYTES) |
+       u32((is64Bit(Machine) ? IMAGE_SCN_ALIGN_8BYTES
+                             : IMAGE_SCN_ALIGN_4BYTES) |
            IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ |
            IMAGE_SCN_MEM_WRITE)},
   };
@@ -441,12 +426,12 @@
 
   // .idata$5, ILT
   append(Buffer, u32(0));
-  if (!is32bit(Machine))
+  if (is64Bit(Machine))
     append(Buffer, u32(0));
 
   // .idata$4, IAT
   append(Buffer, u32(0));
-  if (!is32bit(Machine))
+  if (is64Bit(Machine))
     append(Buffer, u32(0));
 
   // Symbol Table


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D156454.544822.patch
Type: text/x-patch
Size: 3012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230727/5e294a3e/attachment.bin>


More information about the llvm-commits mailing list