[llvm] r231298 - Teach DIEInteger to emit FORM_strp and FORM_ref_addr attributes.
Robinson, Paul
Paul_Robinson at playstation.sony.com
Wed Mar 4 22:09:26 PST 2015
> -----Original Message-----
> From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-
> bounces at cs.uiuc.edu] On Behalf Of Frederic Riss
> Sent: Wednesday, March 04, 2015 2:08 PM
> To: llvm-commits at cs.uiuc.edu
> Subject: [llvm] r231298 - Teach DIEInteger to emit FORM_strp and
> FORM_ref_addr attributes.
>
> Author: friss
> Date: Wed Mar 4 16:07:36 2015
> New Revision: 231298
>
> URL: http://llvm.org/viewvc/llvm-project?rev=231298&view=rev
> Log:
> Teach DIEInteger to emit FORM_strp and FORM_ref_addr attributes.
>
> To be used/tested by llvm-dsymutil. (llvm-dsymutil does a 'static' link,
> no need for relocations for most things, so it'll just emit raw integers
> for most attributes)
>
> Modified:
> llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp?rev=231298&r1=231297&r2=
> 231298&view=diff
> ==========================================================================
> ====
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp Wed Mar 4 16:07:36 2015
> @@ -218,6 +218,7 @@ void DIEInteger::EmitValue(const AsmPrin
> case dwarf::DW_FORM_ref2: // Fall thru
> case dwarf::DW_FORM_data2: Size = 2; break;
> case dwarf::DW_FORM_sec_offset: // Fall thru
> + case dwarf::DW_FORM_strp: // Fall thru
> case dwarf::DW_FORM_ref4: // Fall thru
> case dwarf::DW_FORM_data4: Size = 4; break;
> case dwarf::DW_FORM_ref8: // Fall thru
> @@ -229,6 +230,9 @@ void DIEInteger::EmitValue(const AsmPrin
> case dwarf::DW_FORM_sdata: Asm->EmitSLEB128(Integer); return;
> case dwarf::DW_FORM_addr:
> Size = Asm->getDataLayout().getPointerSize(); break;
> + case dwarf::DW_FORM_ref_addr:
> + Size = SizeOf(Asm, dwarf::DW_FORM_ref_addr);
> + break;
> default: llvm_unreachable("DIE Value form not supported yet");
> }
> Asm->OutStreamer.EmitIntValue(Integer, Size);
> @@ -245,6 +249,7 @@ unsigned DIEInteger::SizeOf(const AsmPri
> case dwarf::DW_FORM_ref2: // Fall thru
> case dwarf::DW_FORM_data2: return sizeof(int16_t);
> case dwarf::DW_FORM_sec_offset: // Fall thru
> + case dwarf::DW_FORM_strp: // Fall thru
> case dwarf::DW_FORM_ref4: // Fall thru
> case dwarf::DW_FORM_data4: return sizeof(int32_t);
> case dwarf::DW_FORM_ref8: // Fall thru
> @@ -255,6 +260,11 @@ unsigned DIEInteger::SizeOf(const AsmPri
> case dwarf::DW_FORM_udata: return getULEB128Size(Integer);
> case dwarf::DW_FORM_sdata: return getSLEB128Size(Integer);
> case dwarf::DW_FORM_addr: return AP->getDataLayout().getPointerSize();
> + case dwarf::DW_FORM_ref_addr:
> + if (AP->OutStreamer.getContext().getDwarfVersion() == 2)
> + return AP->getDataLayout().getPointerSize();
> + return sizeof(int32_t);
> + break;
Don't need break after return.
--paulr
> default: llvm_unreachable("DIE Value form not supported yet");
> }
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list