summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
diff options
context:
space:
mode:
authorJim Laskey <jlaskey@mac.com>2007-02-01 16:31:34 +0000
committerJim Laskey <jlaskey@mac.com>2007-02-01 16:31:34 +0000
commitc3de9b4b144eb19ff4b34e458d96cb9f18fff97e (patch)
tree539f55ed60341d92b7b79371818a0f7415b848dc /llvm/lib/Target/PowerPC
parente15a8b7a55eb41cf0ed2f2e0ce2affbe159ff771 (diff)
downloadbcm5719-llvm-c3de9b4b144eb19ff4b34e458d96cb9f18fff97e.tar.gz
bcm5719-llvm-c3de9b4b144eb19ff4b34e458d96cb9f18fff97e.zip
Support for non-landing pad exception handling.
llvm-svn: 33755
Diffstat (limited to 'llvm/lib/Target/PowerPC')
-rw-r--r--llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp4
-rw-r--r--llvm/lib/Target/PowerPC/PPCTargetAsmInfo.cpp3
2 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
index fb80350c557..3370c362f98 100644
--- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -902,6 +902,10 @@ void PPCRegisterInfo::emitPrologue(MachineFunction &MF) const {
Moves.push_back(MachineMove(FrameLabelId, CSDst, CSSrc));
}
+ MachineLocation LRDst(MachineLocation::VirtualFP, LROffset);
+ MachineLocation LRSrc(IsPPC64 ? PPC::LR8 : PPC::LR);
+ Moves.push_back(MachineMove(FrameLabelId, LRDst, LRSrc));
+
// Mark effective beginning of when frame pointer is ready.
unsigned ReadyLabelId = MMI->NextLabelID();
BuildMI(MBB, MBBI, TII.get(PPC::LABEL)).addImm(ReadyLabelId);
diff --git a/llvm/lib/Target/PowerPC/PPCTargetAsmInfo.cpp b/llvm/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
index 2442a38366f..38e0d212bf6 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTargetAsmInfo.cpp
@@ -41,11 +41,14 @@ PPCTargetAsmInfo::PPCTargetAsmInfo(const PPCTargetMachine &TM) {
DwarfARangesSection = ".section __DWARF,__debug_aranges,regular,debug";
DwarfRangesSection = ".section __DWARF,__debug_ranges,regular,debug";
DwarfMacInfoSection = ".section __DWARF,__debug_macinfo,regular,debug";
+ DwarfEHFrameSection =
+ ".section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support";
}
DarwinTargetAsmInfo::DarwinTargetAsmInfo(const PPCTargetMachine &TM)
: PPCTargetAsmInfo(TM)
{
+ PCSymbol = ".";
CommentString = ";";
GlobalPrefix = "_";
PrivateGlobalPrefix = "L";
OpenPOWER on IntegriCloud