diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2010-02-15 22:35:59 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2010-02-15 22:35:59 +0000 |
| commit | d779bcb96ab72939243f1fdd85a2daae863a82c4 (patch) | |
| tree | 9b3be1493724888c938ca7e3962cf68448cc592b /lib/CodeGen/AsmPrinter/DwarfPrinter.h | |
| parent | 02e78f7e02d9952111a50cfa7a05ca68b2f5c55d (diff) | |
| download | external_llvm-d779bcb96ab72939243f1fdd85a2daae863a82c4.zip external_llvm-d779bcb96ab72939243f1fdd85a2daae863a82c4.tar.gz external_llvm-d779bcb96ab72939243f1fdd85a2daae863a82c4.tar.bz2 | |
Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfPrinter.h')
| -rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfPrinter.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.h b/lib/CodeGen/AsmPrinter/DwarfPrinter.h index 69d9c27..73de398 100644 --- a/lib/CodeGen/AsmPrinter/DwarfPrinter.h +++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.h @@ -28,6 +28,7 @@ class Module; class MCAsmInfo; class TargetData; class TargetRegisterInfo; +class GlobalValue; class MCSymbol; class Twine; @@ -85,6 +86,10 @@ public: const MCAsmInfo *getMCAsmInfo() const { return MAI; } const TargetData *getTargetData() const { return TD; } + /// SizeOfEncodedValue - Return the size of the encoding in bytes. + unsigned SizeOfEncodedValue(unsigned Encoding) const; + + void PrintRelDirective(unsigned Encoding) const; void PrintRelDirective(bool Force32Bit = false, bool isInSection = false) const; @@ -140,6 +145,10 @@ public: void EmitReference(const MCSymbol *Sym, bool IsPCRelative = false, bool Force32Bit = false) const; + void EmitReference(const char *Tag, unsigned Number, unsigned Encoding) const; + void EmitReference(const MCSymbol *Sym, unsigned Encoding) const; + void EmitReference(const GlobalValue *GV, unsigned Encoding) const; + /// EmitDifference - Emit the difference between two labels. void EmitDifference(const DWLabel &LabelHi, const DWLabel &LabelLo, bool IsSmall = false) { |
