1//===-- CodeGen/AsmPrinter/DwarfException.cpp - Dwarf Exception Impl ------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
--- 713 unchanged lines hidden (view full) ---
722 // that is updated by the dynamic linker. This is easy enough, but we
723 // need to tell the personality function of the unwinder to indirect
724 // through the dyld stub.
725 //
726 // FIXME: When (3) is actually implemented, we'll have to emit the stubs
727 // somewhere. This predicate should be moved to a shared location that is
728 // in target-independent code.
729 //
730 if (LSDASection->getKind().isWriteable() ||
731 Asm->TM.getRelocationModel() == Reloc::Static)
732 TTypeFormat = dwarf::DW_EH_PE_absptr;
733 else
734 TTypeFormat = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
735 dwarf::DW_EH_PE_sdata4;
736
737 TypeFormatSize = SizeOfEncodedValue(TTypeFormat);
738 }
--- 173 unchanged lines hidden (view full) ---
912 // Self-relative signed displacement in bytes of the next action record,
913 // or 0 if there is no next action record.
914
915 Asm->EmitSLEB128Bytes(Action.NextAction);
916 Asm->EOL("Next action");
917 }
918
919 // Emit the Catch TypeInfos.
920 for (std::vector<GlobalVariable *>::const_reverse_iterator
921 I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {
922 const GlobalVariable *GV = *I;
923 PrintRelDirective();
924
925 if (GV) {
926 O << Asm->Mang->getMangledName(GV);
927 } else {
928 O << "0x0";
929 }
930
931 Asm->EOL("TypeInfo");
932 }
933
934 // Emit the Exception Specifications.
935 for (std::vector<unsigned>::const_iterator
--- 99 unchanged lines hidden ---
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
--- 713 unchanged lines hidden (view full) ---
722 // that is updated by the dynamic linker. This is easy enough, but we
723 // need to tell the personality function of the unwinder to indirect
724 // through the dyld stub.
725 //
726 // FIXME: When (3) is actually implemented, we'll have to emit the stubs
727 // somewhere. This predicate should be moved to a shared location that is
728 // in target-independent code.
729 //
730 if (LSDASection->getKind().isWriteable() ||
731 Asm->TM.getRelocationModel() == Reloc::Static)
732 TTypeFormat = dwarf::DW_EH_PE_absptr;
733 else
734 TTypeFormat = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
735 dwarf::DW_EH_PE_sdata4;
736
737 TypeFormatSize = SizeOfEncodedValue(TTypeFormat);
738 }
--- 173 unchanged lines hidden (view full) ---
912 // Self-relative signed displacement in bytes of the next action record,
913 // or 0 if there is no next action record.
914
915 Asm->EmitSLEB128Bytes(Action.NextAction);
916 Asm->EOL("Next action");
917 }
918
919 // Emit the Catch TypeInfos.
920 for (std::vector<GlobalVariable *>::const_reverse_iterator
921 I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {
922 const GlobalVariable *GV = *I;
923 PrintRelDirective();
924
925 if (GV) {
926 O << Asm->Mang->getMangledName(GV);
927 } else {
928 O << "0x0";
929 }
930
931 Asm->EOL("TypeInfo");
932 }
933
934 // Emit the Exception Specifications.
935 for (std::vector<unsigned>::const_iterator
--- 99 unchanged lines hidden ---