Changes in directory llvm/include/llvm/CodeGen:
MachOWriter.h updated: 1.18 -> 1.19 --- Log message: Moved MachORelocation to its own header file. Have a call through the TargetMachOInfo object to the GetTargetRelocation method. Pass into it non-Mach-O-specific parameters. --- Diffs of the changes: (+14 -33) MachOWriter.h | 47 ++++++++++++++--------------------------------- 1 files changed, 14 insertions(+), 33 deletions(-) Index: llvm/include/llvm/CodeGen/MachOWriter.h diff -u llvm/include/llvm/CodeGen/MachOWriter.h:1.18 llvm/include/llvm/CodeGen/MachOWriter.h:1.19 --- llvm/include/llvm/CodeGen/MachOWriter.h:1.18 Mon Jan 29 15:20:42 2007 +++ llvm/include/llvm/CodeGen/MachOWriter.h Fri Feb 2 20:37:51 2007 @@ -27,6 +27,7 @@ class Mangler; class MachineCodeEmitter; class MachOCodeEmitter; + class OutputBuffer; /// MachOSym - This struct contains information about each symbol that is /// added to logical symbol table for the module. This is eventually @@ -298,37 +299,6 @@ initprot(VM_PROT_ALL), nsects(0), flags(0) { } }; - /// MachORelocation - This struct contains information about each relocation - /// that needs to be emitted to the file. - /// see <mach-o/reloc.h> - struct MachORelocation { - uint32_t r_address; // offset in the section to what is being relocated - uint32_t r_symbolnum; // symbol index if r_extern == 1 else section index - bool r_pcrel; // was relocated pc-relative already - uint8_t r_length; // length = 2 ^ r_length - bool r_extern; // - uint8_t r_type; // if not 0, machine-specific relocation type. - bool r_scattered; // 1 = scattered, 0 = non-scattered - int32_t r_value; // the value the item to be relocated is referring - // to. - - uint32_t getPackedFields() { - if (r_scattered) - return (1 << 31) | (r_pcrel << 30) | ((r_length & 3) << 28) | - ((r_type & 15) << 24) | (r_address & 0x00FFFFFF); - else - return (r_symbolnum << 8) | (r_pcrel << 7) | ((r_length & 3) << 5) | - (r_extern << 4) | (r_type & 15); - } - uint32_t getAddress() { return r_scattered ? r_value : r_address; } - - MachORelocation(uint32_t addr, uint32_t index, bool pcrel, uint8_t len, - bool ext, uint8_t type, bool scattered = false, - int32_t value = 0) : - r_address(addr), r_symbolnum(index), r_pcrel(pcrel), r_length(len), - r_extern(ext), r_type(type), r_scattered(scattered), r_value(value) {} - }; - /// MachOSection - This struct contains information about each section in a /// particular segment that is emitted to the file. This is eventually /// turned into the SectionCommand in the load command for a particlar @@ -635,8 +605,19 @@ MachineBasicBlock *MBB) const { return TM.getMachOWriterInfo()->GetJTRelocation(Offset, MBB); } - virtual void GetTargetRelocation(MachineRelocation &MR, MachOSection &From, - MachOSection &To, bool Scattered) = 0; + + /// GetTargetRelocation - Returns the number of relocations. + unsigned GetTargetRelocation(MachineRelocation &MR, + unsigned FromIdx, + unsigned ToAddr, + unsigned ToIndex, + OutputBuffer &RelocOut, + OutputBuffer &SecOut, + bool Scattered) { + return TM.getMachOWriterInfo()->GetTargetRelocation(MR, FromIdx, ToAddr, + ToIndex, RelocOut, + SecOut, Scattered); + } }; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits