summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
Commit message (Collapse)AuthorAgeFilesLines
* rename X86ATTAsmPrinter.cpp -> X86AsmPrinter.cpp likewise the .h file.Chris Lattner2009-09-201-154/+0
| | | | llvm-svn: 82394
* rename X86ATTAsmPrinter class -> X86AsmPrinterChris Lattner2009-09-201-2/+2
| | | | llvm-svn: 82391
* Add an intel syntax MCInstPrinter implementation. You can nowChris Lattner2009-09-201-6/+0
| | | | | | transcode from AT&T to intel syntax with "llvm-mc foo.s -output-asm-variant=1" llvm-svn: 82385
* split random COFF asmprinter state out to X86COFFMachineModuleInfo.h.Chris Lattner2009-09-201-19/+0
| | | | | | Make dllexport directives come out in determinstic order. llvm-svn: 82381
* Make a new X8632_MachoTargetObjectFile TLOF implementation whose Chris Lattner2009-09-181-2/+3
| | | | | | | | | | | | | | | | | | | | | | getSymbolForDwarfGlobalReference is smart enough to know that it needs to register the stub it references with MachineModuleInfoMachO, so that it gets emitted at the end of the file. Move stub emission from X86ATTAsmPrinter::doFinalization to the new X86ATTAsmPrinter::EmitEndOfAsmFile asmprinter hook. The important thing here is that EmitEndOfAsmFile is called *after* the ehframes are emitted, so we get all the stubs. This allows us to remove a gross hack from the asmprinter where it would "just know" that it needed to output stubs for personality functions. Now this is all driven from a consistent interface. The testcase change is just reordering the expected output now that the stubs come out after the ehframe instead of before. This also unblocks other changes that Bill wants to make. llvm-svn: 82269
* move FnStubs/GVSTubs/HiddenGVStub handling out of the X86 asmprinterChris Lattner2009-09-161-5/+0
| | | | | | and use MachineModuleInfoMachO instead. llvm-svn: 82022
* revert a hunk of r82018 that wasn't supposed to go in yet.Chris Lattner2009-09-161-0/+5
| | | | llvm-svn: 82020
* add a new MachineModuleInfoMachO class, which is the per-moduleChris Lattner2009-09-161-5/+0
| | | | | | stuff common across all macho targets. llvm-svn: 82018
* remove the AsmPrinter::printMCInst hook hack now thatChris Lattner2009-09-161-2/+1
| | | | | | we have MCInstPrinter. llvm-svn: 82006
* split MCInst printing out of the X86ATTInstPrinterChris Lattner2009-09-131-54/+2
| | | | | | | | class into its own X86ATTInstPrinter class. The inst printer now has just one dependence on the code generator (TRI). llvm-svn: 81703
* split MachineInstr -> MCInst lowering into its own class (notChris Lattner2009-09-121-6/+2
| | | | | | | being embedded into X86ATTAsmPrinter). This still depends heavily on X86ATTAsmPrinter, but this is a step in the right direction. llvm-svn: 81627
* remove the "old" at&t style asmprinter. Unfortunately, most of theChris Lattner2009-09-121-6/+0
| | | | | | | operand printing crapola cannot be removed yet because it is used by the inline asm print stuff. llvm-svn: 81626
* switch HiddenGVStubs to be a DenseMap instead of a string map, mirroring ↵Chris Lattner2009-09-111-2/+2
| | | | | | FnStubs and GVStubs. llvm-svn: 81514
* Fix a bug I introduced in FnStubs generation, switch GVStubs to be a Chris Lattner2009-09-111-2/+3
| | | | | | densemap instead of StringMap to match FnStubs. llvm-svn: 81513
* change FnStubs from being a StringMap<std::string> to being a muchChris Lattner2009-09-111-1/+2
| | | | | | | | | | more efficient SmallPtrSet<MCSymbol*>. This eliminates string craziness and fixes CodeGen/X86/darwin-quote.ll with the new asmprinter. Codegen is producing stubs in a nondeterminstic order, but it was doing this before anyway. llvm-svn: 81511
* rearrange some code, export a SmallString version of DecorateCygMingName.Chris Lattner2009-09-111-0/+1
| | | | llvm-svn: 81502
* merge globaladdress symbol processing stuff into other stuff. NowChris Lattner2009-09-031-1/+1
| | | | | | | all global variable operand flag processing stuff is shared between different operand types. llvm-svn: 80886
* Split the "operand -> symbol" logic from the "get offset and other mungingChris Lattner2009-09-031-3/+4
| | | | | | from operand" logic. GlobalAddress still todo. llvm-svn: 80884
* implement lowering support for constant pool index operands, this gets a ↵Chris Lattner2009-09-031-1/+3
| | | | | | | | bunch more olden programs working. llvm-svn: 80881
* Added opaque 32-, 48-, and 80-bit memory operand types to the X86Sean Callanan2009-09-031-0/+9
| | | | | | | | | instruction tables to support segmented addressing (and other objects of obscure type). Modified the X86 assembly printers to handle these new operand types. Added JMP and CALL instructions that use segmented addresses. llvm-svn: 80857
* split mcinst lowering stuff out to its own file.Chris Lattner2009-09-021-1/+3
| | | | llvm-svn: 80806
* X86/exp-asm-printer: Lower MachineOperand::MO_JumpTableIndex to MCOperand.Daniel Dunbar2009-08-311-0/+1
| | | | | | - Down to 7 failures on 403.gcc. llvm-svn: 80605
* Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner2009-08-221-1/+1
| | | | llvm-svn: 79763
* add support for external symbols + X86::MOVPC32r.Chris Lattner2009-08-161-0/+3
| | | | llvm-svn: 79175
* implement support for lowering references to global addresses. For example, ↵Chris Lattner2009-08-161-0/+2
| | | | | | | | | | | | | we now can asmprint: NEW: movl "L___stack_chk_guard$non_lazy_ptr", %eax OLD: movl L___stack_chk_guard$non_lazy_ptr, %eax where 'new' is coming out of the MCInst version of the printer. llvm-svn: 79170
* Add virtual printMCInst method to AsmPrinter, as a quick way to expose the APIDaniel Dunbar2009-08-141-0/+2
| | | | | | to print one instruction. llvm-svn: 78985
* make printInstruction return void since its result is omitted. Make the Chris Lattner2009-08-081-2/+2
| | | | | | error condition get trapped with an assert. llvm-svn: 78449
* hoist MCContext/MCStreamer up to AsmPrinter since we're going to start creatingChris Lattner2009-07-271-6/+0
| | | | | | | MCSections soon instead of Section for all targets, and we need something to own them. llvm-svn: 77252
* make AsmPrinter::doFinalization iterate over the global variablesChris Lattner2009-07-211-1/+1
| | | | | | | and call PrintGlobalVariable, allowing elimination and simplification of various targets. llvm-svn: 76604
* Reapply TargetRegistry refactoring commits.Daniel Dunbar2009-07-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --- Reverse-merging r75799 into '.': U test/Analysis/PointerTracking U include/llvm/Target/TargetMachineRegistry.h U include/llvm/Target/TargetMachine.h U include/llvm/Target/TargetRegistry.h U include/llvm/Target/TargetSelect.h U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp U tools/llc/llc.cpp U lib/Target/PowerPC/PPCTargetMachine.h U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp U lib/Target/PowerPC/PPCTargetMachine.cpp U lib/Target/PowerPC/PPC.h U lib/Target/ARM/ARMTargetMachine.cpp U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp U lib/Target/ARM/ARMTargetMachine.h U lib/Target/ARM/ARM.h U lib/Target/XCore/XCoreTargetMachine.cpp U lib/Target/XCore/XCoreTargetMachine.h U lib/Target/PIC16/PIC16TargetMachine.cpp U lib/Target/PIC16/PIC16TargetMachine.h U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp U lib/Target/Alpha/AlphaTargetMachine.cpp U lib/Target/Alpha/AlphaTargetMachine.h U lib/Target/X86/X86TargetMachine.h U lib/Target/X86/X86.h U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h U lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h U lib/Target/X86/X86TargetMachine.cpp U lib/Target/MSP430/MSP430TargetMachine.cpp U lib/Target/MSP430/MSP430TargetMachine.h U lib/Target/CppBackend/CPPTargetMachine.h U lib/Target/CppBackend/CPPBackend.cpp U lib/Target/CBackend/CTargetMachine.h U lib/Target/CBackend/CBackend.cpp U lib/Target/TargetMachine.cpp U lib/Target/IA64/IA64TargetMachine.cpp U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp U lib/Target/IA64/IA64TargetMachine.h U lib/Target/IA64/IA64.h U lib/Target/MSIL/MSILWriter.cpp U lib/Target/CellSPU/SPUTargetMachine.h U lib/Target/CellSPU/SPU.h U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp U lib/Target/CellSPU/SPUTargetMachine.cpp U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp U lib/Target/Mips/MipsTargetMachine.cpp U lib/Target/Mips/MipsTargetMachine.h U lib/Target/Mips/Mips.h U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp U lib/Target/Sparc/SparcTargetMachine.cpp U lib/Target/Sparc/SparcTargetMachine.h U lib/ExecutionEngine/JIT/TargetSelect.cpp U lib/Support/TargetRegistry.cpp llvm-svn: 75820
* Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to ↵Stuart Hastings2009-07-151-1/+1
| | | | | | | | repair broken LLVM-GCC build. Will revert 75770 in the llvm-gcc trunk. llvm-svn: 75799
* Register Target's TargetMachine and AsmPrinter in the new registry.Daniel Dunbar2009-07-151-1/+1
| | | | | | | - This abuses TargetMachineRegistry's constructor for now, this will get cleaned up in time. llvm-svn: 75762
* rename decorateName -> DecorateCygMingName, make it assert if notChris Lattner2009-07-151-1/+1
| | | | | | | cygming, make the two callers only call it if cygming. Other minor cleanups. llvm-svn: 75744
* Have asm printers use formatted_raw_ostream directly to avoid aDavid Greene2009-07-141-1/+1
| | | | | | dynamic_cast<>. llvm-svn: 75670
* Reapply my previous asmprinter changes now with more testing and two Chris Lattner2009-07-141-2/+2
| | | | | | | | | | | | | | | | | | | | additional bug fixes: 1. The bug that everyone hit was a problem in the asmprinter where it would remove $stub but keep the L prefix on a name when emitting the indirect symbol. This is easy to fix by keeping the name of the stub and the name of the symbol in a StringMap instead of just keeping a StringSet and trying to reconstruct it late. 2. There was a problem printing the personality function. The current logic to print out the personality function from the DWARF information is a bit of a cesspool right now that duplicates a bunch of other logic in the asm printer. The short version of it is that it depends on emitting both the L and _ prefix for symbols (at least on darwin) and until I can untangle it, it is best to switch the mangler back to emitting both prefixes. llvm-svn: 75646
* refactor symbol printing so the whole "mem" thing is handled in fewer places.Chris Lattner2009-07-131-0/+1
| | | | llvm-svn: 75512
* make cygwin use its own stubs set, instead of overloading a darwin one.Chris Lattner2009-07-091-1/+1
| | | | llvm-svn: 75105
* Remove unused AsmPrinter OptLevel argument, and propogate.Daniel Dunbar2009-07-011-3/+2
| | | | | | | - This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. llvm-svn: 74579
* Add 256-bit memory operand support.David Greene2009-06-301-0/+6
| | | | llvm-svn: 74548
* Reimplement rip-relative addressing in the X86-64 backend. The newChris Lattner2009-06-271-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementation primarily differs from the former in that the asmprinter doesn't make a zillion decisions about whether or not something will be RIP relative or not. Instead, those decisions are made by isel lowering and propagated through to the asm printer. To achieve this, we: 1. Represent RIP relative addresses by setting the base of the X86 addr mode to X86::RIP. 2. When ISel Lowering decides that it is safe to use RIP, it lowers to X86ISD::WrapperRIP. When it is unsafe to use RIP, it lowers to X86ISD::Wrapper as before. 3. This removes isRIPRel from X86ISelAddressMode, representing it with a basereg of RIP instead. 4. The addressing mode matching logic in isel is greatly simplified. 5. The asmprinter is greatly simplified, notably the "NotRIPRel" predicate passed through various printoperand routines is gone now. 6. The various symbol printing routines in asmprinter now no longer infer when to emit (%rip), they just print the symbol. I think this is a big improvement over the previous situation. It does have two small caveats though: 1. I implemented a horrible "no-rip" modifier for the inline asm "P" constraint modifier. This is a short term hack, there is a much better, but more involved, solution. 2. I had to xfail an -aggressive-remat testcase because it isn't handling the use of RIP in the constant-pool reading instruction. This specific test is easy to fix without -aggressive-remat, which I intend to do next. llvm-svn: 74372
* reimplement getPICLabelString as PrintPICBaseSymbol to eliminate std::string ↵Chris Lattner2009-06-241-0/+2
| | | | | | heap thrashing. llvm-svn: 74105
* sink management of DwarfWriter & MachineModuleInfo into the AsmPrinter base ↵Chris Lattner2009-06-241-2/+1
| | | | | | class. llvm-svn: 74101
* inline print*Stub and rearrange function stub printing to more closely matchChris Lattner2009-06-241-3/+0
| | | | | | gv and hiddengv stub printing. llvm-svn: 74093
* remove now-dead argument.Chris Lattner2009-06-241-1/+1
| | | | llvm-svn: 74091
* remove dead argumentChris Lattner2009-06-241-1/+1
| | | | llvm-svn: 74089
* wire up support for MCContext/MCStreamer in -experimental-asm-printer mode.Chris Lattner2009-06-241-0/+7
| | | | llvm-svn: 74066
* eliminate the "call" operand modifier from the asm descriptions, modelingChris Lattner2009-06-201-1/+3
| | | | | | | it as a pcrel immediate instead. This gets pc-rel weirdness out of the main printoperand codepath. llvm-svn: 73829
* implement support for lowering subregs when preparing to print Chris Lattner2009-06-201-5/+3
| | | | | | | | LEA64_32r, eliminating a bunch of modifier logic stuff on addr modes. Implement support for printing mbb labels as operands. llvm-svn: 73817
* Initialize MMIDevang Patel2009-06-201-0/+1
| | | | llvm-svn: 73813
* stub out some hacky code for wiring up the new asmprinter interfacesChris Lattner2009-06-191-2/+50
| | | | | | on X86. Not useful yet. llvm-svn: 73799
OpenPOWER on IntegriCloud