Author: void Date: Fri Aug 24 19:51:55 2007 New Revision: 41385 URL: http://llvm.org/viewvc/llvm-project?rev=41385&view=rev Log: The personality function might need to be declared as:
.set Lset0,___gxx_personality_v0-. .long Lset0 on some targets. Make it so! Modified: llvm/trunk/lib/CodeGen/DwarfWriter.cpp Modified: llvm/trunk/lib/CodeGen/DwarfWriter.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/DwarfWriter.cpp?rev=41385&r1=41384&r2=41385&view=diff ============================================================================== --- llvm/trunk/lib/CodeGen/DwarfWriter.cpp (original) +++ llvm/trunk/lib/CodeGen/DwarfWriter.cpp Fri Aug 24 19:51:55 2007 @@ -2803,11 +2803,24 @@ Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4); Asm->EOL("Personality (pcrel sdata4)"); - O << TAI->getData32bitsDirective(); - Asm->EmitExternalGlobal((const GlobalVariable *)(Personality)); - O << "-" << TAI->getPCSymbol(); - Asm->EOL("Personality"); - + if (TAI->needsSet()) { + O << "\t.set\t"; + PrintLabelName("set", SetCounter); + O << ","; + Asm->EmitExternalGlobal((const GlobalVariable *)(Personality)); + O << "-" << TAI->getPCSymbol(); + Asm->EOL("Set Personality"); + O << TAI->getData32bitsDirective(); + PrintLabelName("set", SetCounter); + Asm->EOL("Personality"); + ++SetCounter; + } else { + O << TAI->getData32bitsDirective(); + Asm->EmitExternalGlobal((const GlobalVariable *)(Personality)); + O << "-" << TAI->getPCSymbol(); + Asm->EOL("Personality"); + } + Asm->EmitULEB128Bytes(DW_EH_PE_pcrel); Asm->EOL("LSDA Encoding (pcrel)"); Asm->EmitULEB128Bytes(DW_EH_PE_pcrel); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits