reed kotler
2014-Feb-04 17:37 UTC
[LLVMdev] emitting function stub for mips16 floating point patch
How is alignment set? On 02/04/2014 08:48 AM, Rafael Espíndola wrote:> On 31 January 2014 18:59, reed kotler <rkotler at mips.com> wrote: >> I'm rewriting this patch for the stubs to not use outputing of raw text. >> >> Generating the instructions is very straightforward and that part is done. > awesome! > >> I'm translating the actual function now. >> >> How do you emit an .ent > emitDirectiveEnt in the mips target streamer. > >> or .globl > EmitSymbolAttribute with MCSA_Global > >> from asm printer? >> .type ? > EmitSymbolAttribute with MCSA_ELF_Type* > >> .end ?? > emitDirectiveEnd on the mips target streamer > >> .section ??? > SwitchSection > >> I'm studying the classes now but it should be simple to do so if you know, >> you can save me some time >> because this is another maze of llvm data abstraction. > The rule of the thumb is that each line in assembly is a method in the > streamer or target streamer. > >> Tia. >> >> Reed > Cheers, > Rafael
Rafael Espíndola
2014-Feb-04 17:49 UTC
[LLVMdev] emitting function stub for mips16 floating point patch
On 4 February 2014 12:37, reed kotler <rkotler at mips.com> wrote:> How is alignment set?Of a symbol? EmitValueToAlignment. A tip on how to find this is to look at what clang prints (".align...") and grep for it "git grep '\.align'"). Cheers, Rafael
reed kotler
2014-Feb-04 17:53 UTC
[LLVMdev] emitting function stub for mips16 floating point patch
On 02/04/2014 09:49 AM, Rafael Espíndola wrote:> On 4 February 2014 12:37, reed kotler <rkotler at mips.com> wrote: >> How is alignment set? > Of a symbol? EmitValueToAlignment. > > A tip on how to find this is to look at what clang prints > (".align...") and grep for it "git grep '\.align'"). > > Cheers, > RafaelNot on a symbol but in a section to set the current value. I have not found it so far but am looking where this can be in AsmPrinter or MC. I have these statements left to translate. Most we already discussed. .align 2 the .nomips16 and .nomicromips we have it in mipsTargetStreamer (which to me seems little different from emit raw text). I think you mentioned already how to do the .size OutStreamer.EmitRawText(".align 2"); OutStreamer.EmitRawText(".nomips16"); OutStreamer.EmitRawText(".nomicromips"); OutStreamer.EmitRawText("\t.ent\t__call_stub_fp_" + Twine(Symbol)); OutStreamer.EmitRawText("\t.type\t__call_stub_fp_" + Twine(Symbol) + ", @function"); OutStreamer.EmitRawText("\t__call_stub_fp_" + Twine(Symbol) + ":"); OutStreamer.EmitRawText("\t.size __call_stub_fp_" + Twine(Symbol) + ", .-__call_stub_fp_" + Twine(Symbol)); OutStreamer.EmitRawText("\t.end __call_stub_fp_" + Twine(Symbol));