summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-04-27 01:43:49 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-04-27 01:43:49 +0000
commit9266cc400ee2fc86abb24ab0819d9da280fb61c4 (patch)
treeb56857f0b2d6dc89f7fbad02b95f22124c2dfdc7 /lib
parent547eb4fd560cdd77e06c88eed1722bdb94c82b26 (diff)
downloadllvm-9266cc400ee2fc86abb24ab0819d9da280fb61c4.tar.gz
llvm-9266cc400ee2fc86abb24ab0819d9da280fb61c4.tar.bz2
llvm-9266cc400ee2fc86abb24ab0819d9da280fb61c4.tar.xz
Force some values to be absolute and align based on the FDE pointers size. A small
step towards using .cfi_* on OS X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130273 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/MC/MCDwarf.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index 243da6119f..566c090feb 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -622,14 +622,14 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(MCStreamer &streamer,
const TargetAsmInfo &asmInfo = context.getTargetAsmInfo();
const MCSection &section = *asmInfo.getEHFrameSection();
streamer.SwitchSection(&section);
- MCSymbol *sectionStart = streamer.getContext().CreateTempSymbol();
+ MCSymbol *sectionStart = context.CreateTempSymbol();
MCSymbol *sectionEnd = streamer.getContext().CreateTempSymbol();
// Length
const MCExpr *Length = MakeStartMinusEndExpr(streamer, *sectionStart,
*sectionEnd, 4);
streamer.EmitLabel(sectionStart);
- streamer.EmitValue(Length, 4);
+ streamer.EmitAbsValue(Length, 4);
// CIE ID
streamer.EmitIntValue(0, 4);
@@ -715,13 +715,13 @@ MCSymbol *FrameEmitterImpl::EmitFDE(MCStreamer &streamer,
// Length
const MCExpr *Length = MakeStartMinusEndExpr(streamer, *fdeStart, *fdeEnd, 0);
- streamer.EmitValue(Length, 4);
+ streamer.EmitAbsValue(Length, 4);
streamer.EmitLabel(fdeStart);
// CIE Pointer
const MCExpr *offset = MakeStartMinusEndExpr(streamer, cieStart, *fdeStart,
0);
- streamer.EmitValue(offset, 4);
+ streamer.EmitAbsValue(offset, 4);
unsigned fdeEncoding = asmInfo.getFDEEncoding();
unsigned size = getSizeForEncoding(streamer, fdeEncoding);
@@ -731,7 +731,7 @@ MCSymbol *FrameEmitterImpl::EmitFDE(MCStreamer &streamer,
// PC Range
const MCExpr *Range = MakeStartMinusEndExpr(streamer, *frame.Begin,
*frame.End, 0);
- streamer.EmitValue(Range, size);
+ streamer.EmitAbsValue(Range, size);
// Augmentation Data Length
MCSymbol *augmentationStart = streamer.getContext().CreateTempSymbol();
@@ -751,7 +751,7 @@ MCSymbol *FrameEmitterImpl::EmitFDE(MCStreamer &streamer,
EmitCFIInstructions(streamer, frame.Instructions, frame.Begin);
// Padding
- streamer.EmitValueToAlignment(4);
+ streamer.EmitValueToAlignment(size);
return fdeEnd;
}