From bc06737c355f7206beecf5c7c0fb0d818c1297a4 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 16 Jun 2010 21:32:38 +0000 Subject: [PATCH] In progress on 32-bit addends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106154 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MachObjectWriter.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index 7be7af21b3f..347615011a9 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -756,8 +756,14 @@ public: MCSymbolData *SD_A = &Asm.getSymbolData(Target.getSymA()->getSymbol()); unsigned Index = SD_A->getIndex(); - if (Target.getSymB()) + // We're only going to have a second symbol in pic mode and it'll be a + // subtraction from the picbase. For 32-bit pic the addend is the difference + // between the picbase and the next address. + if (Target.getSymB()) { IsPCRel = 1; + } else { + FixedValue = 0; + } // struct relocation_info (8 bytes) MachRelocationEntry MRE;