[llvm-commits] [llvm] r99205 - in /llvm/trunk: include/llvm/MC/MCObjectWriter.h include/llvm/MC/MachObjectWriter.h lib/MC/MCAssembler.cpp lib/MC/MachObjectWriter.cpp
Daniel Dunbar
daniel at zuster.org
Mon Mar 22 13:35:50 PDT 2010
Author: ddunbar
Date: Mon Mar 22 15:35:50 2010
New Revision: 99205
URL: http://llvm.org/viewvc/llvm-project?rev=99205&view=rev
Log:
MC: Change MCObjectWriter::RecordRelocation to take an MCFragment (instead of a MCDataFragment). Object files should only need the generic MCFragment features.
Modified:
llvm/trunk/include/llvm/MC/MCObjectWriter.h
llvm/trunk/include/llvm/MC/MachObjectWriter.h
llvm/trunk/lib/MC/MCAssembler.cpp
llvm/trunk/lib/MC/MachObjectWriter.cpp
Modified: llvm/trunk/include/llvm/MC/MCObjectWriter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectWriter.h?rev=99205&r1=99204&r2=99205&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCObjectWriter.h (original)
+++ llvm/trunk/include/llvm/MC/MCObjectWriter.h Mon Mar 22 15:35:50 2010
@@ -17,7 +17,7 @@
namespace llvm {
class MCAsmFixup;
class MCAssembler;
-class MCDataFragment;
+class MCFragment;
class MCValue;
class raw_ostream;
@@ -69,7 +69,7 @@
/// information about the relocation so that it can be emitted during
/// WriteObject().
virtual void RecordRelocation(const MCAssembler &Asm,
- const MCDataFragment &Fragment,
+ const MCFragment *Fragment,
const MCAsmFixup &Fixup, MCValue Target,
uint64_t &FixedValue) = 0;
Modified: llvm/trunk/include/llvm/MC/MachObjectWriter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MachObjectWriter.h?rev=99205&r1=99204&r2=99205&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MachObjectWriter.h (original)
+++ llvm/trunk/include/llvm/MC/MachObjectWriter.h Mon Mar 22 15:35:50 2010
@@ -17,7 +17,7 @@
namespace llvm {
class MCAsmFixup;
class MCAssembler;
-class MCDataFragment;
+class MCFragment;
class MCValue;
class raw_ostream;
@@ -31,7 +31,7 @@
virtual void ExecutePostLayoutBinding(MCAssembler &Asm);
virtual void RecordRelocation(const MCAssembler &Asm,
- const MCDataFragment &Fragment,
+ const MCFragment *Fragment,
const MCAsmFixup &Fixup, MCValue Target,
uint64_t &FixedValue);
Modified: llvm/trunk/lib/MC/MCAssembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAssembler.cpp?rev=99205&r1=99204&r2=99205&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAssembler.cpp (original)
+++ llvm/trunk/lib/MC/MCAssembler.cpp Mon Mar 22 15:35:50 2010
@@ -573,7 +573,7 @@
// The fixup was unresolved, we need a relocation. Inform the object
// writer of the relocation, and give it an opportunity to adjust the
// fixup value if need be.
- Writer->RecordRelocation(*this, *DF, Fixup, Target, FixedValue);
+ Writer->RecordRelocation(*this, DF, Fixup, Target, FixedValue);
}
getBackend().ApplyFixup(Fixup, *DF, FixedValue);
Modified: llvm/trunk/lib/MC/MachObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MachObjectWriter.cpp?rev=99205&r1=99204&r2=99205&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MachObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/MachObjectWriter.cpp Mon Mar 22 15:35:50 2010
@@ -438,7 +438,7 @@
}
void RecordX86_64Relocation(const MCAssembler &Asm,
- const MCDataFragment &Fragment,
+ const MCFragment *Fragment,
const MCAsmFixup &Fixup, MCValue Target,
uint64_t &FixedValue) {
unsigned IsPCRel = isFixupKindPCRel(Fixup.Kind);
@@ -446,7 +446,7 @@
unsigned Log2Size = getFixupKindLog2Size(Fixup.Kind);
// See <reloc.h>.
- uint32_t Address = Fragment.getOffset() + Fixup.Offset;
+ uint32_t Address = Fragment->getOffset() + Fixup.Offset;
int64_t Value = 0;
unsigned Index = 0;
unsigned IsExtern = 0;
@@ -521,7 +521,7 @@
(Log2Size << 25) |
(IsExtern << 27) |
(Type << 28));
- Relocations[Fragment.getParent()].push_back(MRE);
+ Relocations[Fragment->getParent()].push_back(MRE);
Index = B_Base->getIndex();
IsExtern = 1;
@@ -622,14 +622,14 @@
(Log2Size << 25) |
(IsExtern << 27) |
(Type << 28));
- Relocations[Fragment.getParent()].push_back(MRE);
+ Relocations[Fragment->getParent()].push_back(MRE);
}
void RecordScatteredRelocation(const MCAssembler &Asm,
- const MCFragment &Fragment,
+ const MCFragment *Fragment,
const MCAsmFixup &Fixup, MCValue Target,
uint64_t &FixedValue) {
- uint32_t Address = Fragment.getOffset() + Fixup.Offset;
+ uint32_t Address = Fragment->getOffset() + Fixup.Offset;
unsigned IsPCRel = isFixupKindPCRel(Fixup.Kind);
unsigned Log2Size = getFixupKindLog2Size(Fixup.Kind);
unsigned Type = RIT_Vanilla;
@@ -670,7 +670,7 @@
(IsPCRel << 30) |
RF_Scattered);
MRE.Word1 = Value2;
- Relocations[Fragment.getParent()].push_back(MRE);
+ Relocations[Fragment->getParent()].push_back(MRE);
}
MachRelocationEntry MRE;
@@ -680,10 +680,10 @@
(IsPCRel << 30) |
RF_Scattered);
MRE.Word1 = Value;
- Relocations[Fragment.getParent()].push_back(MRE);
+ Relocations[Fragment->getParent()].push_back(MRE);
}
- void RecordRelocation(const MCAssembler &Asm, const MCDataFragment &Fragment,
+ void RecordRelocation(const MCAssembler &Asm, const MCFragment *Fragment,
const MCAsmFixup &Fixup, MCValue Target,
uint64_t &FixedValue) {
if (Is64Bit) {
@@ -707,7 +707,7 @@
}
// See <reloc.h>.
- uint32_t Address = Fragment.getOffset() + Fixup.Offset;
+ uint32_t Address = Fragment->getOffset() + Fixup.Offset;
uint32_t Value = 0;
unsigned Index = 0;
unsigned IsExtern = 0;
@@ -752,7 +752,7 @@
(Log2Size << 25) |
(IsExtern << 27) |
(Type << 28));
- Relocations[Fragment.getParent()].push_back(MRE);
+ Relocations[Fragment->getParent()].push_back(MRE);
}
void BindIndirectSymbols(MCAssembler &Asm) {
@@ -1097,7 +1097,7 @@
}
void MachObjectWriter::RecordRelocation(const MCAssembler &Asm,
- const MCDataFragment &Fragment,
+ const MCFragment *Fragment,
const MCAsmFixup &Fixup, MCValue Target,
uint64_t &FixedValue) {
((MachObjectWriterImpl*) Impl)->RecordRelocation(Asm, Fragment, Fixup,
More information about the llvm-commits
mailing list