diff options
| author | Martin Storsjo <martin@martin.st> | 2019-01-27 19:53:36 +0000 |
|---|---|---|
| committer | Martin Storsjo <martin@martin.st> | 2019-01-27 19:53:36 +0000 |
| commit | e5eb6fb95087ab7381020d677d7a2dfc2c98cd94 (patch) | |
| tree | ae21530cb9e3316d8cdf1226b4afa58093dca415 | |
| parent | 0276d12426c03f493afa4958136ffc8add7c40f3 (diff) | |
| download | bcm5719-llvm-e5eb6fb95087ab7381020d677d7a2dfc2c98cd94.tar.gz bcm5719-llvm-e5eb6fb95087ab7381020d677d7a2dfc2c98cd94.zip | |
[COFF] Add new relocation types.
Differential Revision: https://reviews.llvm.org/D57291
llvm-svn: 352324
| -rw-r--r-- | llvm/include/llvm/BinaryFormat/COFF.h | 5 | ||||
| -rw-r--r-- | llvm/lib/Object/COFFObjectFile.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/ObjectYAML/COFFYAML.cpp | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/llvm/include/llvm/BinaryFormat/COFF.h b/llvm/include/llvm/BinaryFormat/COFF.h index 69c238db891..e0543dea4c2 100644 --- a/llvm/include/llvm/BinaryFormat/COFF.h +++ b/llvm/include/llvm/BinaryFormat/COFF.h @@ -370,13 +370,15 @@ enum RelocationTypesARM : unsigned { IMAGE_REL_ARM_TOKEN = 0x0005, IMAGE_REL_ARM_BLX24 = 0x0008, IMAGE_REL_ARM_BLX11 = 0x0009, + IMAGE_REL_ARM_REL32 = 0x000A, IMAGE_REL_ARM_SECTION = 0x000E, IMAGE_REL_ARM_SECREL = 0x000F, IMAGE_REL_ARM_MOV32A = 0x0010, 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 +399,7 @@ enum RelocationTypesARM64 : unsigned { IMAGE_REL_ARM64_ADDR64 = 0x000E, IMAGE_REL_ARM64_BRANCH19 = 0x000F, IMAGE_REL_ARM64_BRANCH14 = 0x0010, + IMAGE_REL_ARM64_REL32 = 0x0011, }; enum COMDATType : unsigned { diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 570b69fea18..7839c65516b 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -1236,6 +1236,7 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const { LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_TOKEN); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_BLX24); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_BLX11); + LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_REL32); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_SECTION); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_SECREL); LLVM_COFF_SWITCH_RELOC_TYPE_NAME(IMAGE_REL_ARM_MOV32A); @@ -1243,6 +1244,7 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const { 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 +1268,7 @@ StringRef COFFObjectFile::getRelocationTypeName(uint16_t Type) const { 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"; } diff --git a/llvm/lib/ObjectYAML/COFFYAML.cpp b/llvm/lib/ObjectYAML/COFFYAML.cpp index 03356c3ba12..f206e31b550 100644 --- a/llvm/lib/ObjectYAML/COFFYAML.cpp +++ b/llvm/lib/ObjectYAML/COFFYAML.cpp @@ -187,6 +187,7 @@ void ScalarEnumerationTraits<COFF::RelocationTypesARM>::enumeration( ECase(IMAGE_REL_ARM_TOKEN); ECase(IMAGE_REL_ARM_BLX24); ECase(IMAGE_REL_ARM_BLX11); + ECase(IMAGE_REL_ARM_REL32); ECase(IMAGE_REL_ARM_SECTION); ECase(IMAGE_REL_ARM_SECREL); ECase(IMAGE_REL_ARM_MOV32A); @@ -194,6 +195,7 @@ void ScalarEnumerationTraits<COFF::RelocationTypesARM>::enumeration( ECase(IMAGE_REL_ARM_BRANCH20T); ECase(IMAGE_REL_ARM_BRANCH24T); ECase(IMAGE_REL_ARM_BLX23T); + ECase(IMAGE_REL_ARM_PAIR); } void ScalarEnumerationTraits<COFF::RelocationTypesARM64>::enumeration( @@ -215,6 +217,7 @@ void ScalarEnumerationTraits<COFF::RelocationTypesARM64>::enumeration( ECase(IMAGE_REL_ARM64_ADDR64); ECase(IMAGE_REL_ARM64_BRANCH19); ECase(IMAGE_REL_ARM64_BRANCH14); + ECase(IMAGE_REL_ARM64_REL32); } void ScalarEnumerationTraits<COFF::WindowsSubsystem>::enumeration( |

