Index: include/llvm/BinaryFormat/COFF.h =================================================================== --- include/llvm/BinaryFormat/COFF.h +++ include/llvm/BinaryFormat/COFF.h @@ -376,7 +376,8 @@ IMAGE_REL_ARM_MOV32T = 0x0011, IMAGE_REL_ARM_BRANCH20T = 0x0012, IMAGE_REL_ARM_BRANCH24T = 0x0014, - IMAGE_REL_ARM_BLX23T = 0x0015 + IMAGE_REL_ARM_BLX23T = 0x0015, + IMAGE_REL_ARM_PAIR = 0x0016, }; enum RelocationTypesARM64 : unsigned { @@ -397,6 +398,7 @@ IMAGE_REL_ARM64_ADDR64 = 0x000E, IMAGE_REL_ARM64_BRANCH19 = 0x000F, IMAGE_REL_ARM64_BRANCH14 = 0x0010, + IMAGE_REL_ARM64_REL32 = 0x0011, }; enum COMDATType : unsigned { Index: lib/Object/COFFObjectFile.cpp =================================================================== --- lib/Object/COFFObjectFile.cpp +++ lib/Object/COFFObjectFile.cpp @@ -1243,6 +1243,7 @@ LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_BRANCH20T); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_BRANCH24T); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_BLX23T); + LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_PAIR); default: return "Unknown"; } @@ -1266,6 +1267,7 @@ LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM64_ADDR64); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM64_BRANCH19); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM64_BRANCH14); + LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM64_REL32); default: return "Unknown"; } Index: lib/ObjectYAML/COFFYAML.cpp =================================================================== --- lib/ObjectYAML/COFFYAML.cpp +++ lib/ObjectYAML/COFFYAML.cpp @@ -194,6 +194,7 @@ ECase(IMAGE_REL_ARM_BRANCH20T); ECase(IMAGE_REL_ARM_BRANCH24T); ECase(IMAGE_REL_ARM_BLX23T); + ECase(IMAGE_REL_ARM_PAIR); } void ScalarEnumerationTraits::enumeration( @@ -215,6 +216,7 @@ ECase(IMAGE_REL_ARM64_ADDR64); ECase(IMAGE_REL_ARM64_BRANCH19); ECase(IMAGE_REL_ARM64_BRANCH14); + ECase(IMAGE_REL_ARM64_REL32); } void ScalarEnumerationTraits::enumeration(