Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(298)

Side by Side Diff: lib/Target/X86/X86ELFWriterInfo.h

Issue 4294001: arm-mc-elf-s07 (Closed)
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/Target/MBlaze/MBlazeELFWriterInfo.cpp ('k') | lib/Target/X86/X86ELFWriterInfo.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- X86ELFWriterInfo.h - ELF Writer Info for X86 ------------*- C++ -*-===// 1 //===-- X86ELFWriterInfo.h - ELF Writer Info for X86 ------------*- 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 implements ELF writer information for the X86 backend. 10 // This file implements ELF writer information for the X86 backend.
11 // 11 //
12 //===----------------------------------------------------------------------===// 12 //===----------------------------------------------------------------------===//
13 13
14 #ifndef X86_ELF_WRITER_INFO_H 14 #ifndef X86_ELF_WRITER_INFO_H
15 #define X86_ELF_WRITER_INFO_H 15 #define X86_ELF_WRITER_INFO_H
16 16
17 #include "llvm/Target/TargetELFWriterInfo.h" 17 #include "llvm/Target/TargetELFWriterInfo.h"
18 18
19 namespace llvm { 19 namespace llvm {
20 20 class BinaryObject;
21 class MachineRelocation;
21 class X86ELFWriterInfo : public TargetELFWriterInfo { 22 class X86ELFWriterInfo : public TargetELFWriterInfo {
22 23
23 // ELF Relocation types for X86 24 // ELF Relocation types for X86
24 enum X86RelocationType { 25 enum X86RelocationType {
25 R_386_NONE = 0, 26 R_386_NONE = 0,
26 R_386_32 = 1, 27 R_386_32 = 1,
27 R_386_PC32 = 2 28 R_386_PC32 = 2
28 }; 29 };
29 30
30 // ELF Relocation types for X86_64 31 // ELF Relocation types for X86_64
31 enum X86_64RelocationType { 32 enum X86_64RelocationType {
32 R_X86_64_NONE = 0, 33 R_X86_64_NONE = 0,
33 R_X86_64_64 = 1, 34 R_X86_64_64 = 1,
34 R_X86_64_PC32 = 2, 35 R_X86_64_PC32 = 2,
35 R_X86_64_32 = 10, 36 R_X86_64_32 = 10,
36 R_X86_64_32S = 11, 37 R_X86_64_32S = 11,
37 R_X86_64_PC64 = 24 38 R_X86_64_PC64 = 24
38 }; 39 };
39 40
40 public: 41 public:
41 X86ELFWriterInfo(bool is64Bit_, bool isLittleEndian_); 42 X86ELFWriterInfo(bool is64Bit_, bool isLittleEndian_);
42 virtual ~X86ELFWriterInfo(); 43 virtual ~X86ELFWriterInfo();
43 44
44 /// getRelocationType - Returns the target specific ELF Relocation type. 45 /// getRelocationType - Returns the target specific ELF Relocation type.
45 /// 'MachineRelTy' contains the object code independent relocation type 46 /// S is the ELF section blob that contains the relocation
46 virtual unsigned getRelocationType(unsigned MachineRelTy) const; 47 /// MR contains the object code independent relocation type
48 virtual unsigned getRelocationType(const BinaryObject &S,
49 const MachineRelocation &MR) const;
47 50
48 /// hasRelocationAddend - True if the target uses an addend in the 51 /// hasRelocationAddend - True if the target uses an addend in the
49 /// ELF relocation entry. 52 /// ELF relocation entry.
50 virtual bool hasRelocationAddend() const { return is64Bit ? true : false; } 53 virtual bool hasRelocationAddend() const { return is64Bit ? true : false; }
51 54
52 /// getDefaultAddendForRelTy - Gets the default addend value for a 55 /// getDefaultAddendForRelTy - Gets the default addend value for a
53 /// relocation entry based on the target ELF relocation type. 56 /// relocation entry based on the target ELF relocation type.
54 virtual long int getDefaultAddendForRelTy(unsigned RelTy, 57 virtual long int getDefaultAddendForRelTy(unsigned RelTy,
55 long int Modifier = 0) const; 58 long int Modifier = 0) const;
56 59
(...skipping 10 matching lines...) Expand all
67 /// computeRelocation - Some relocatable fields could be relocated 70 /// computeRelocation - Some relocatable fields could be relocated
68 /// directly, avoiding the relocation symbol emission, compute the 71 /// directly, avoiding the relocation symbol emission, compute the
69 /// final relocation value for this symbol. 72 /// final relocation value for this symbol.
70 virtual long int computeRelocation(unsigned SymOffset, unsigned RelOffset, 73 virtual long int computeRelocation(unsigned SymOffset, unsigned RelOffset,
71 unsigned RelTy) const; 74 unsigned RelTy) const;
72 }; 75 };
73 76
74 } // end llvm namespace 77 } // end llvm namespace
75 78
76 #endif // X86_ELF_WRITER_INFO_H 79 #endif // X86_ELF_WRITER_INFO_H
OLDNEW
« no previous file with comments | « lib/Target/MBlaze/MBlazeELFWriterInfo.cpp ('k') | lib/Target/X86/X86ELFWriterInfo.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698