summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* really kill off the last MRMInitReg inst, remove logic from encoder.Chris Lattner2010-02-051-0/+1
| | | | llvm-svn: 95437
* lower the last of the MRMInitReg instructions in MCInstLower.Chris Lattner2010-02-051-0/+7
| | | | llvm-svn: 95435
* teach X86MCInstLower to lower the MOV32r0 and MOV8r0 Chris Lattner2010-02-051-2/+10
| | | | | | pseudo instructions. llvm-svn: 95433
* genericize helpers, use them for MOV16r0/MOV64r0Chris Lattner2010-02-051-27/+21
| | | | llvm-svn: 95432
* factor code better in X86MCInstLower::Lower, teach it toChris Lattner2010-02-051-44/+26
| | | | | | lower the SETB* instructions. llvm-svn: 95431
* Rewrite FP constant handling in DEBUG_VALUE yetDale Johannesen2010-02-041-5/+17
| | | | | | | again, so it more or less handles long double. Restore \n removed in latest MC frenzy. llvm-svn: 95271
* make MachineModuleInfoMachO hold non-const MCSymbol*'s insteadChris Lattner2010-02-031-4/+4
| | | | | | | of const ones. non-const ones aren't very useful, because you can't even, say, emit them. llvm-svn: 95205
* Finally eliminate printMCInst and send instructions throughChris Lattner2010-02-031-8/+4
| | | | | | | | | | | | | | | | | | | | | | | the streamer. Demo: $ cat t.ll define i32 @test() nounwind { ret i32 42 } $ llc t.ll -o - ... _test: movl $42, %eax ret $ llc t.ll -o t.o -filetype=obj $ otool -tv t.o t.o: (__TEXT,__text) section _test: 00000000 movl $0x0000002a,%eax 00000005 ret llvm-svn: 95179
* rejigger the world so that EmitInstruction prints the \n atChris Lattner2010-02-031-0/+4
| | | | | | | | the end of the instruction instead of expecting the caller to do it. This currently causes the asm-verbose instruction comments to be on the next line. llvm-svn: 95178
* sink handling of target-independent machine instrs (otherChris Lattner2010-02-031-14/+0
| | | | | | | | than DEBUG_VALUE :( ) into the target indep AsmPrinter.cpp file. This allows elimination of the NO_ASM_WRITER_BOILERPLATE hack among other things. llvm-svn: 95177
* Print FPImm a less kludgy way; APFloat.toString seemsDale Johannesen2010-02-031-6/+3
| | | | | | to have some problems anyway. llvm-svn: 95171
* Accept floating point immediates in DEBUG_VALUE.Dale Johannesen2010-02-021-1/+11
| | | | llvm-svn: 95159
* Remove the argument from EmitJumpTableInfo, because it doesn't need it.Chris Lattner2010-01-281-1/+1
| | | | | | | | Move the X86 implementation of function body emission up to AsmPrinter::EmitFunctionBody, which works by calling the virtual EmitInstruction method. llvm-svn: 94716
* Treat MO_REG 0 location as undefined in DEBUG_VALUE,Dale Johannesen2010-01-271-2/+8
| | | | | | per document. llvm-svn: 94693
* Move getJTISymbol from MachineJumpTableInfo to MachineFunction,Chris Lattner2010-01-261-2/+3
| | | | | | | | | | | | | | | | | | which is more convenient, and change getPICJumpTableRelocBaseExpr to take a MachineFunction to match. Next, move the X86 code that create a PICBase symbol to X86TargetLowering::getPICBaseSymbol from X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific library. This eliminates a 'gross hack', and allows us to implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now calls it. This in turn allows us to eliminate the X86AsmPrinter::printPICJumpTableSetLabel method, which was the only overload of printPICJumpTableSetLabel. llvm-svn: 94526
* add a new MachineBasicBlock::getSymbol method, replacingChris Lattner2010-01-261-1/+1
| | | | | | the AsmPrinter::GetMBBSymbol. llvm-svn: 94515
* Accept immediate as value of a dbg_value.Dale Johannesen2010-01-261-2/+3
| | | | llvm-svn: 94489
* use some helpers instead of duplicating logic.Chris Lattner2010-01-231-0/+4
| | | | llvm-svn: 94285
* Avoid including DebugInfo.h in AsmPrinter.hDevang Patel2010-01-191-0/+1
| | | | llvm-svn: 93864
* move the mangler into libtarget from vmcore.Chris Lattner2010-01-161-3/+1
| | | | llvm-svn: 93664
* eliminate uses of mangler and simplify code.Chris Lattner2010-01-161-15/+6
| | | | llvm-svn: 93615
* Adjust some comments per review.Dale Johannesen2010-01-151-2/+4
| | | | llvm-svn: 93580
* DEBUG_VALUE is now variable sized, as it has aDale Johannesen2010-01-151-0/+24
| | | | | | | | target-dependent memory address representation in it. Restore X86 printing of DEBUG_VALUE; lowering is done in X86RegisterInfo using the normal algorithm. llvm-svn: 93565
* Revert 93499. After discussion with Chris we agreedDale Johannesen2010-01-151-20/+0
| | | | | | | | | FrameIndexes should be lowered, but the same way as everything else (target dependent) rather than in a special hacked way. The lowering needs to be done for eventual purposes of Dwarf generation. llvm-svn: 93530
* Lower FrameIndex operand of DEBUG_VALUE (specially) andDale Johannesen2010-01-151-0/+20
| | | | | | print it as a comment on X86. llvm-svn: 93499
* Reapply the MOV64r0 patch, with a fix: MOV64r0 clobbers EFLAGS.Dan Gohman2010-01-121-0/+8
| | | | llvm-svn: 93229
* Revert 93158. It's breaking quite a few x86_64 tests.Evan Cheng2010-01-111-8/+0
| | | | llvm-svn: 93185
* Re-instate MOV64r0 and MOV16r0, with adjustments to work with theDan Gohman2010-01-111-0/+8
| | | | | | | | new AsmPrinter. This is perhaps less elegant than describing them in terms of MOV32r0 and subreg operations, but it allows the current register to rematerialize them. llvm-svn: 93158
* completely eliminate the MOV16r0 'instruction'. The onlyChris Lattner2009-12-231-4/+0
| | | | | | | interesting part of this is the divrem changes, which are already tested by CodeGen/X86/divrem.ll. llvm-svn: 91975
* Fix a thinko that caused spurious @GOTOFFs.Dan Gohman2009-11-201-2/+2
| | | | llvm-svn: 89509
* Target-independent support for TargetFlags on BlockAddress operands,Dan Gohman2009-11-201-3/+14
| | | | | | and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506
* add some missing #includesChris Lattner2009-11-071-0/+1
| | | | llvm-svn: 86367
* Factor out the printing of the leading tab into printInlineAsm.Dan Gohman2009-11-061-1/+0
| | | | llvm-svn: 86199
* Print out an informative comment for KILL instructions.Jakob Stoklund Olesen2009-11-041-0/+1
| | | | | | | | The KILL pseudo-instruction may survive to the asm printer pass, just like the IMPLICIT_DEF. Print the KILL as a comment instead of just leaving a blank line in the output. With -asm-verbose=0, a blank line is printed, like IMPLICIT?DEF. llvm-svn: 86041
* Initial x86 support for BlockAddresses.Dan Gohman2009-10-301-0/+4
| | | | llvm-svn: 85557
* X86 should ignore implicit regs when lowering to MCInst also,Chris Lattner2009-10-191-0/+2
| | | | | | no functionality change. llvm-svn: 84567
* simplify by using the twine form of GetOrCreateSymbolChris Lattner2009-10-191-8/+5
| | | | llvm-svn: 84565
* revert r84540, fixing build breakage I didn't see because ofChris Lattner2009-10-191-5/+5
| | | | | | broken makefile deps :( llvm-svn: 84544
* pass mangler in as a reference instead of a pointer.Chris Lattner2009-10-191-5/+5
| | | | llvm-svn: 84540
* Introduce the TargetInstrInfo::KILL machine instruction and get rid of theJakob Stoklund Olesen2009-09-281-0/+2
| | | | | | | | | | unused DECLARE instruction. KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places where IMPLICIT_DEF is just used to alter liveness of physical registers. llvm-svn: 83006
* rename X86ATTAsmPrinter.cpp -> X86AsmPrinter.cpp likewise the .h file.Chris Lattner2009-09-201-1/+1
| | | | llvm-svn: 82394
* rename X86ATTAsmPrinter class -> X86AsmPrinterChris Lattner2009-09-201-2/+1
| | | | llvm-svn: 82391
* split random COFF asmprinter state out to X86COFFMachineModuleInfo.h.Chris Lattner2009-09-201-2/+6
| | | | | | Make dllexport directives come out in determinstic order. llvm-svn: 82381
* move FnStubs/GVSTubs/HiddenGVStub handling out of the X86 asmprinterChris Lattner2009-09-161-4/+12
| | | | | | and use MachineModuleInfoMachO instead. llvm-svn: 82022
* split MCInst printing out of the X86ATTInstPrinterChris Lattner2009-09-131-4/+5
| | | | | | | | class into its own X86ATTInstPrinter class. The inst printer now has just one dependence on the code generator (TRI). llvm-svn: 81703
* delete the fixme too! :)Chris Lattner2009-09-131-2/+0
| | | | llvm-svn: 81689
* merge the linux cpool/jtbl pic tests into pic.ll and convert to filecheck.Chris Lattner2009-09-131-8/+2
| | | | | | | Change the picbase symbol on non-darwin systems from ".Lllvm$4.$piclabel" to ".L4$pb". The actual name doesn't matter and the darwin name is shorter. llvm-svn: 81688
* devirtualize AsmPrinter::printBasicBlockLabel since it is never overridden.Chris Lattner2009-09-121-10/+1
| | | | | | | | Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that we only have one place that decides what to name bb labels. Hopefully various clients of printBasicBlockLabel can start using GetMBBSymbol instead. llvm-svn: 81652
* factor MBB label lowering betterChris Lattner2009-09-121-5/+5
| | | | llvm-svn: 81630
* X86MCInstLower::Lower should only not emit anything to OutStreamer,Chris Lattner2009-09-121-23/+40
| | | | | | | | this means that it can only lower one MachineInstr to one MCInst. To make this fly, we need to pull out handling of MO_GOT_ABSOLUTE_ADDRESS (which generates an implicit label) out of X86MCInstLower. llvm-svn: 81629
OpenPOWER on IntegriCloud