[llvm-commits] [llvm] r80427 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Bill Wendling
isanbard at gmail.com
Sat Aug 29 17:29:05 PDT 2009
Sounds good to me. Doned. :-)
-bw
On Aug 29, 2009, at 5:21 PM, Chris Lattner wrote:
> On Aug 29, 2009, at 5:17 AM, Bill Wendling wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=80427&view=rev
>> Log:
>> Add a form of EOL which emits the text version of a DWARF format
>> encoding. This
>> doesn't handle all values of the formatting. Those can be added as
>> needed.
>
> Ok, please don't add the std::string version though. Callers can
> just call .cstr() if they need to. I'd like to eventually stomp out
> the std::strings in the asmprinter, and this makes it easier to find
> them.
>
> Thanks Bill!
>
> -Chris
>
>>
>> Modified:
>> llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
>> llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>>
>> Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h?rev=80427&r1=80426&r2=80427&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
>> +++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Sat Aug 29
>> 07:17:53 2009
>> @@ -268,7 +268,9 @@
>> void EOL() const;
>> void EOL(const std::string &Comment) const;
>> void EOL(const char* Comment) const;
>> -
>> + void EOL(const std::string &Comment, unsigned Encoding) const;
>> + void EOL(const char *Comment, unsigned Encoding) const;
>> +
>> /// EmitULEB128Bytes - Emit an assembler byte data directive to
>> compose an
>> /// unsigned leb128 value.
>> void EmitULEB128Bytes(unsigned Value) const;
>>
>> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=80427&r1=80426&r2=80427&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Sat Aug 29
>> 07:17:53 2009
>> @@ -604,6 +604,56 @@
>> O << '\n';
>> }
>>
>> +static const char *DecodeDWARFEncoding(unsigned Encoding) {
>> + switch (Encoding) {
>> + case dwarf::DW_EH_PE_absptr:
>> + return "absptr";
>> + case dwarf::DW_EH_PE_omit:
>> + return "omit";
>> + case dwarf::DW_EH_PE_pcrel:
>> + return "pcrel";
>> + case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata4:
>> + return "pcrel udata4";
>> + case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4:
>> + return "pcrel sdata4";
>> + case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_udata8:
>> + return "pcrel udata8";
>> + case dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata8:
>> + return "pcrel sdata8";
>> + case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
>> dwarf::DW_EH_PE_udata4:
>> + return "indirect pcrel udata4";
>> + case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
>> dwarf::DW_EH_PE_sdata4:
>> + return "indirect pcrel sdata4";
>> + case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
>> dwarf::DW_EH_PE_udata8:
>> + return "indirect pcrel udata8";
>> + case dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
>> dwarf::DW_EH_PE_sdata8:
>> + return "indirect pcrel sdata8";
>> + }
>> +
>> + return 0;
>> +}
>> +
>> +void AsmPrinter::EOL(const std::string &Comment, unsigned
>> Encoding) const {
>> + if (VerboseAsm && !Comment.empty()) {
>> + EOL(Comment.c_str(), Encoding);
>> + return;
>> + }
>> + O << '\n';
>> +}
>> +
>> +void AsmPrinter::EOL(const char *Comment, unsigned Encoding) const {
>> + if (VerboseAsm && *Comment) {
>> + O.PadToColumn(MAI->getCommentColumn());
>> + O << MAI->getCommentString()
>> + << ' '
>> + << Comment;
>> +
>> + if (const char *EncStr = DecodeDWARFEncoding(Encoding))
>> + O << " (" << EncStr << ')';
>> + }
>> + O << '\n';
>> +}
>> +
>> /// EmitULEB128Bytes - Emit an assembler byte data directive to
>> compose an
>> /// unsigned leb128 value.
>> void AsmPrinter::EmitULEB128Bytes(unsigned Value) const {
>>
>>
>> _______________________________________________
>> 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