<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 01/29/2014 10:01 AM, Eric
      Christopher wrote:<br>
    </div>
    <blockquote
cite="mid:CALehDX4TFn2KJjH=AEAUt9oSppWuP9DU89sgnZJHc+hsgzrk2Q@mail.gmail.com"
      type="cite">
      <pre wrap="">On Wed, Jan 29, 2014 at 9:54 AM, Reed Kotler <a class="moz-txt-link-rfc2396E" href="mailto:rkotler@mips.com"><rkotler@mips.com></a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">On 01/28/2014 06:29 PM, Eric Christopher wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">
Uhhhh...

-eric

On Tue, Jan 28, 2014 at 4:56 PM, reed kotler <a class="moz-txt-link-rfc2396E" href="mailto:rkotler@mips.com"><rkotler@mips.com></a> wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">
I would like to make the following member of AsmPrinter be protected


void EmitInlineAsm(StringRef Str, const MDNode *LocMDNode = 0,
                        InlineAsm::AsmDialect AsmDialect =
                            InlineAsm::AD_ATT) const;

I have some stubs that I want to emit in MipsAsmParser .

Are there any objections to doing this?

Reed

_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
          </blockquote>
        </blockquote>
        <pre wrap="">
Stubs to emit in MipsAsmPrinter

I think you were one of the people that was against me emitting the inline
asm earlier as part of the IR.

Well, now I am starting to move that to the back end of code generation due
to other issues that were not apparent when I first implemented this mips16
hard float.

Also, it was agreed at that time that it would be better if possible to do
things this way.


</pre>
      </blockquote>
      <pre wrap="">
Why not just note that you need to emit the functions as you output
and then emit them during MC?

-eric
</pre>
    </blockquote>
    Let me go back one step...<br>
    <br>
    You are saying that instead of using EmitRawText, that I try and do
    this with the higher level AsmPrinter methods.<br>
    <br>
    <i></i>Here is a little snipped that does not even include
    instructions:<br>
    <br>
       
OutStreamer.EmitRawText("\t.section\t.mips16.call.fp"+Twine(Symbol)+",\"ax\",@progbits");<br>
        OutStreamer.EmitRawText(".align 2");<br>
        OutStreamer.EmitRawText(".nomips16");<br>
        OutStreamer.EmitRawText(".nomicromips");<br>
        OutStreamer.EmitRawText("\t.ent\t__call_stub_fp_" +
    Twine(Symbol));<br>
        OutStreamer.EmitRawText("\t.type\t__call_stub_fp_" +
    Twine(Symbol) + ", @function");<br>
        OutStreamer.EmitRawText("\t__call_stub_fp_" + Twine(Symbol) +
    ":");<br>
        OutStreamer.EmitRawText("\t.size  __call_stub_fp_" +
    Twine(Symbol) +<br>
                                ", .-__call_stub_fp_" + Twine(Symbol));<br>
        OutStreamer.EmitRawText("\t.end  __call_stub_fp_" +
    Twine(Symbol));<br>
    <br>
    (I have other code that generates the exact instructions).<br>
    <br>
    Here is the code it wants to generate:<br>
    <br>
        .globl    __floatdidf<br>
        # Stub function to call double __floatdidf ()<br>
        .section    .mips16.call.fp.__floatdidf,"ax",@progbits<br>
        .align    2<br>
        .set    nomips16<br>
        .set    nomicromips<br>
        .ent    __call_stub_fp___floatdidf<br>
        .type    __call_stub_fp___floatdidf, @function<br>
    __call_stub_fp___floatdidf:<br>
        move    $18,$31<br>
        jal    __floatdidf<br>
        mfc1    $2,$f0<br>
        mfc1    $3,$f1<br>
        jr    $18<br>
        .size    __call_stub_fp___floatdidf,
    .-__call_stub_fp___floatdidf<br>
        .end    __call_stub_fp___floatdidf<br>
        .globl    __mips16_muldf3<br>
        .globl    __mips16_truncdfsf2<br>
    <br>
    <br>
    This requires a lot of pseudo ops.<br>
    <br>
    <br>
    <br>
     <br>
  </body>
</html>