summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp')
-rw-r--r--lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
index 8fd4b23de13..6096e46c8fd 100644
--- a/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/WriterPECOFF.cpp
@@ -587,26 +587,26 @@ void AtomChunk::applyRelocations64(uint8_t *buffer,
break;
case llvm::COFF::IMAGE_REL_AMD64_REL32_1:
*relocSite32 =
- *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 3;
+ *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 5;
break;
case llvm::COFF::IMAGE_REL_AMD64_REL32_2:
*relocSite32 =
- *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 2;
+ *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 6;
break;
case llvm::COFF::IMAGE_REL_AMD64_REL32_3:
*relocSite32 =
- *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 1;
+ *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 7;
break;
case llvm::COFF::IMAGE_REL_AMD64_REL32_4:
*relocSite32 =
- *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom();
+ *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 8;
break;
case llvm::COFF::IMAGE_REL_AMD64_REL32_5:
*relocSite32 =
- *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() + 1;
+ *relocSite32 + targetAddr - atomRva[atom] - ref->offsetInAtom() - 9;
break;
case llvm::COFF::IMAGE_REL_AMD64_SECTION:
- *relocSite16 = *relocSite16 + getSectionIndex(targetAddr, sectionRva);
+ *relocSite16 = *relocSite16 + getSectionIndex(targetAddr, sectionRva) - 1;
break;
case llvm::COFF::IMAGE_REL_AMD64_SECREL:
*relocSite32 = *relocSite32 + targetAddr -
OpenPOWER on IntegriCloud