| OLD | NEW | 
|---|
| 1 //===-- llvm/Target/TargetELFWriterInfo.h - ELF Writer Info -----*- C++ -*-===// | 1 //===-- llvm/Target/TargetELFWriterInfo.h - ELF Writer Info -----*- C++ -*-===// | 
| 2 // | 2 // | 
| 3 //                     The LLVM Compiler Infrastructure | 3 //                     The LLVM Compiler Infrastructure | 
| 4 // | 4 // | 
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source | 
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. | 
| 7 // | 7 // | 
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// | 
| 9 // | 9 // | 
| 10 // This file defines the TargetELFWriterInfo class. | 10 // This file defines the TargetELFWriterInfo class. | 
| 11 // | 11 // | 
| 12 //===----------------------------------------------------------------------===// | 12 //===----------------------------------------------------------------------===// | 
| 13 | 13 | 
| 14 #ifndef LLVM_TARGET_TARGETELFWRITERINFO_H | 14 #ifndef LLVM_TARGET_TARGETELFWRITERINFO_H | 
| 15 #define LLVM_TARGET_TARGETELFWRITERINFO_H | 15 #define LLVM_TARGET_TARGETELFWRITERINFO_H | 
| 16 | 16 | 
| 17 namespace llvm { | 17 namespace llvm { | 
| 18   class Function; | 18   class Function; | 
| 19   class TargetData; | 19   class TargetData; | 
| 20   class TargetMachine; | 20   class TargetMachine; | 
| 21 | 21   class MachineRelocation; | 
|  | 22   class BinaryObject; | 
| 22   //===--------------------------------------------------------------------===// | 23   //===--------------------------------------------------------------------===// | 
| 23   //                          TargetELFWriterInfo | 24   //                          TargetELFWriterInfo | 
| 24   //===--------------------------------------------------------------------===// | 25   //===--------------------------------------------------------------------===// | 
| 25 | 26 | 
| 26   class TargetELFWriterInfo { | 27   class TargetELFWriterInfo { | 
| 27   protected: | 28   protected: | 
| 28     // EMachine - This field is the target specific value to emit as the | 29     // EMachine - This field is the target specific value to emit as the | 
| 29     // e_machine member of the ELF header. | 30     // e_machine member of the ELF header. | 
| 30     unsigned short EMachine; | 31     unsigned short EMachine; | 
| 31     bool is64Bit, isLittleEndian; | 32     bool is64Bit, isLittleEndian; | 
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 82     /// is used to align some sections. | 83     /// is used to align some sections. | 
| 83     unsigned getPrefELFAlignment() const { return is64Bit ? 8 : 4; } | 84     unsigned getPrefELFAlignment() const { return is64Bit ? 8 : 4; } | 
| 84 | 85 | 
| 85     /// getRelocationEntrySize - Entry size used in the relocation section | 86     /// getRelocationEntrySize - Entry size used in the relocation section | 
| 86     unsigned getRelocationEntrySize() const { | 87     unsigned getRelocationEntrySize() const { | 
| 87       return is64Bit ? (hasRelocationAddend() ? 24 : 16) | 88       return is64Bit ? (hasRelocationAddend() ? 24 : 16) | 
| 88                      : (hasRelocationAddend() ? 12 : 8); | 89                      : (hasRelocationAddend() ? 12 : 8); | 
| 89     } | 90     } | 
| 90 | 91 | 
| 91     /// getRelocationType - Returns the target specific ELF Relocation type. | 92     /// getRelocationType - Returns the target specific ELF Relocation type. | 
| 92     /// 'MachineRelTy' contains the object code independent relocation type | 93     /// S  is the ELF section blob that contains the relocation | 
| 93     virtual unsigned getRelocationType(unsigned MachineRelTy) const = 0; | 94     /// MR contains the object code independent relocation type | 
|  | 95     virtual unsigned getRelocationType(const BinaryObject &S, | 
|  | 96                                        const MachineRelocation &MR) const = 0; | 
| 94 | 97 | 
| 95     /// hasRelocationAddend - True if the target uses an addend in the | 98     /// hasRelocationAddend - True if the target uses an addend in the | 
| 96     /// ELF relocation entry. | 99     /// ELF relocation entry. | 
| 97     virtual bool hasRelocationAddend() const = 0; | 100     virtual bool hasRelocationAddend() const = 0; | 
| 98 | 101 | 
| 99     /// getDefaultAddendForRelTy - Gets the default addend value for a | 102     /// getDefaultAddendForRelTy - Gets the default addend value for a | 
| 100     /// relocation entry based on the target ELF relocation type. | 103     /// relocation entry based on the target ELF relocation type. | 
| 101     virtual long int getDefaultAddendForRelTy(unsigned RelTy, | 104     virtual long int getDefaultAddendForRelTy(unsigned RelTy, | 
| 102                                               long int Modifier = 0) const = 0; | 105                                               long int Modifier = 0) const = 0; | 
| 103 | 106 | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 114     /// computeRelocation - Some relocatable fields could be relocated | 117     /// computeRelocation - Some relocatable fields could be relocated | 
| 115     /// directly, avoiding the relocation symbol emission, compute the | 118     /// directly, avoiding the relocation symbol emission, compute the | 
| 116     /// final relocation value for this symbol. | 119     /// final relocation value for this symbol. | 
| 117     virtual long int computeRelocation(unsigned SymOffset, unsigned RelOffset, | 120     virtual long int computeRelocation(unsigned SymOffset, unsigned RelOffset, | 
| 118                                        unsigned RelTy) const = 0; | 121                                        unsigned RelTy) const = 0; | 
| 119   }; | 122   }; | 
| 120 | 123 | 
| 121 } // end llvm namespace | 124 } // end llvm namespace | 
| 122 | 125 | 
| 123 #endif // LLVM_TARGET_TARGETELFWRITERINFO_H | 126 #endif // LLVM_TARGET_TARGETELFWRITERINFO_H | 
| OLD | NEW | 
|---|