summaryrefslogtreecommitdiff
path: root/lib/Target
Commit message (Collapse)AuthorAge
* Revert array initialization regclass change so that the initialization stays ↵Jim Grosbach2009-09-11
| | | | | | static, not runtime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81560 91177308-0d34-0410-b5e6-96231b3b80d8
* Update register class references to use the global constant ↵Jim Grosbach2009-09-11
| | | | | | ARM::*RegisterClass names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81556 91177308-0d34-0410-b5e6-96231b3b80d8
* Added ADC, SUB, SBB, and OR instructions that operateSean Callanan2009-09-11
| | | | | | | on rAX and an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81551 91177308-0d34-0410-b5e6-96231b3b80d8
* fix pastoChris Lattner2009-09-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81544 91177308-0d34-0410-b5e6-96231b3b80d8
* fix some fixmes: emit stubs in sorted order.Chris Lattner2009-09-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81541 91177308-0d34-0410-b5e6-96231b3b80d8
* turn on -experimental-asm-printer for x86 / AT&T by default.Chris Lattner2009-09-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81532 91177308-0d34-0410-b5e6-96231b3b80d8
* switch HiddenGVStubs to be a DenseMap instead of a string map, mirroring ↵Chris Lattner2009-09-11
| | | | | | FnStubs and GVStubs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81514 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug I introduced in FnStubs generation, switch GVStubs to be a Chris Lattner2009-09-11
| | | | | | | densemap instead of StringMap to match FnStubs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81513 91177308-0d34-0410-b5e6-96231b3b80d8
* change FnStubs from being a StringMap<std::string> to being a muchChris Lattner2009-09-11
| | | | | | | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81511 91177308-0d34-0410-b5e6-96231b3b80d8
* printInstruction() no longer prints a \n after itself, do itChris Lattner2009-09-11
| | | | | | | for the two instruction MOVPC32r sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81509 91177308-0d34-0410-b5e6-96231b3b80d8
* reimplement X86ATTAsmPrinter::GetGlobalAddressSymbol in terms ofChris Lattner2009-09-11
| | | | | | | | | Mangler::getNameWithPrefix. In addition to avoiding some over quoting, this also is more efficient because it uses smallvector instead of std::string thrashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81508 91177308-0d34-0410-b5e6-96231b3b80d8
* convert X86ATTAsmPrinter::GetExternalSymbolSymbol to use SmallStringChris Lattner2009-09-11
| | | | | | | instead of std::string and Mangler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81503 91177308-0d34-0410-b5e6-96231b3b80d8
* rearrange some code, export a SmallString version of DecorateCygMingName.Chris Lattner2009-09-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81502 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow up to 81494. When the folded reload is narrowed to a 32-bit load then ↵Evan Cheng2009-09-11
| | | | | | change the destination register to a 32-bit one or add a sub-register index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81496 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not legal to fold a load from a narrower stack slot into a wider ↵Evan Cheng2009-09-11
| | | | | | | | | | | | | instruction. If done, the instruction does a 64-bit load and that's not safe. This can happen we a subreg_to_reg 0 has been coalesced. One exception is when the instruction that folds the load is a move, then we can simply turn it into a 32-bit load from the stack slot. rdar://7170444 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81494 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the ParseInstruction() hook for target specific assembler directives soKevin Enderby2009-09-10
| | | | | | | | | that things like .word can be parsed as target specific. Moved parsing .word out of AsmParser.cpp into X86AsmParser.cpp as it is 2 bytes on X86 and 4 bytes for other targets that support the .word directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81461 91177308-0d34-0410-b5e6-96231b3b80d8
* Added XOR instructions for rAX and immediates ofSean Callanan2009-09-10
| | | | | | | various widths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81458 91177308-0d34-0410-b5e6-96231b3b80d8
* Added MOV instructions between rAX and memory offsets,Sean Callanan2009-09-10
| | | | | | | | including segment offsets and (for 8-bit operands) absolute offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81457 91177308-0d34-0410-b5e6-96231b3b80d8
* Added a variety of PUSH and POP instructions, includingSean Callanan2009-09-10
| | | | | | | | ones capable of accessing R/M operands instead of just registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81456 91177308-0d34-0410-b5e6-96231b3b80d8
* Proper support of non-lazy indirect symbols.Evan Cheng2009-09-10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81422 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix double load / store multiple encoding.Evan Cheng2009-09-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81403 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix pr4939: Change FPCCToARMCC to translate SETOLE to ARMCC::LS.Bob Wilson2009-09-09
| | | | | | | See the bug report for details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81397 91177308-0d34-0410-b5e6-96231b3b80d8
* remove DebugLoc from MCInst and eliminate "Comment printing" fromChris Lattner2009-09-09
| | | | | | | | | | | | | | | the MCInst path of the asmprinter. Instead, pull comment printing out of the autogenerated asmprinter into each target that uses the autogenerated asmprinter. This causes code duplication into each target, but in a way that will be easier to clean up later when more asmprinter stuff is commonized into the base AsmPrinter class. This also fixes an xcore strangeness where it inserted two tabs before every instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81396 91177308-0d34-0410-b5e6-96231b3b80d8
* add a gross hack to get "SrcLine" comments to show up with theChris Lattner2009-09-09
| | | | | | | new asmprinter. Differently gross hack coming next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81379 91177308-0d34-0410-b5e6-96231b3b80d8
* hoist the call to processDebugLoc out of the generatedChris Lattner2009-09-09
| | | | | | | | | | | | | | asm printer into the "printInstruction" routine. This fixes a problem where the experimental asmprinter would drop debug labels in some cases, and fixes issues on ppc/xcore where pseudo instructions like "mr" didn't get debug locs properly. It is annoying that this moves the call from one place into each target, but a future set of more invasive refactorings will fix that problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81377 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide proper section flags for various BSS flavoursAnton Korobeynikov2009-09-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81322 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace cleanupAnton Korobeynikov2009-09-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81321 91177308-0d34-0410-b5e6-96231b3b80d8
* disable the new asmprinter by default. Both the Mangler and MCSymbolChris Lattner2009-09-09
| | | | | | | printing stuff are quoting symbols now, breaking objc testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81319 91177308-0d34-0410-b5e6-96231b3b80d8
* Cast MO.getImm() to unsigned before comparing with an unsigned limit.Evan Cheng2009-09-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81318 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to make stub region writable before emission, executable after ↵Evan Cheng2009-09-09
| | | | | | emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81311 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix arm jit encoding bug introduced by 75048. Some instructions', e.g. MOVi, ↵Evan Cheng2009-09-09
| | | | | | bit 25 should be set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81310 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove comments which don't add much to .s readibility.Evan Cheng2009-09-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81306 91177308-0d34-0410-b5e6-96231b3b80d8
* turn the mcinst asmprinter on by default for x86, tweaking two tests toChris Lattner2009-09-09
| | | | | | | expect the slight syntax differences in the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81305 91177308-0d34-0410-b5e6-96231b3b80d8
* tidy upChris Lattner2009-09-09
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81304 91177308-0d34-0410-b5e6-96231b3b80d8
* make sure to send external symbols through the mangler,Chris Lattner2009-09-09
| | | | | | | this fixes mingw-alloca.ll with the new asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81301 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for @PLT and friends on external symbols, fixesChris Lattner2009-09-09
| | | | | | | x86-64-pic-11.ll with the new asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81294 91177308-0d34-0410-b5e6-96231b3b80d8
* change selectiondag to add the sign extended versions of immediate operandsChris Lattner2009-09-08
| | | | | | | | | to instructions instead of zero extended ones. This makes the asmprinter print signed values more consistently. This apparently only really affects the X86 backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81265 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak getOnesVector() / getZeroVector() to use valid ARM extended imm's.Anton Korobeynikov2009-09-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81262 91177308-0d34-0410-b5e6-96231b3b80d8
* Add NEON 'laned' operations. This fixes another bunch of gcc testsuite fails andAnton Korobeynikov2009-09-08
| | | | | | makes the code faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81220 91177308-0d34-0410-b5e6-96231b3b80d8
* Add source debug information to the Sparc code generator.Richard Pennington2009-09-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81215 91177308-0d34-0410-b5e6-96231b3b80d8
* Also emit a label for TargetInstrInfo::GC_LABEL.Nicolas Geoffray2009-09-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81206 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for some missing modifiers on jumptable/constant pool entries.Chris Lattner2009-09-08
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81199 91177308-0d34-0410-b5e6-96231b3b80d8
* add a bunch more evil lowering code to work around various :subreg32 modifiersChris Lattner2009-09-08
| | | | | | | | in the .td files. This gets us down to 18 failures in codegen/x86 with the new asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81198 91177308-0d34-0410-b5e6-96231b3b80d8
* ADd support for "lowering" the X86::MOVZX16rr8/X86::MOVZX16rm8Chris Lattner2009-09-08
| | | | | | | subreg32 modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81196 91177308-0d34-0410-b5e6-96231b3b80d8
* add a hack to lower MOV16r0 to MOV32r0 in MCInstLower, eliminatingChris Lattner2009-09-08
| | | | | | | | the problem with subreg32 modifiers. This gets all of Olden working with the new asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81195 91177308-0d34-0410-b5e6-96231b3b80d8
* fix PR4767, a crash because fp stackifier visited blocks inChris Lattner2009-09-08
| | | | | | | | | depth first order, so it wouldn't process unreachable blocks. When compiling at -O0, late dead block elimination isn't done and the bad instructions got to isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81187 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not create calls via PLT in compilation callback - this is higly platformAnton Korobeynikov2009-09-06
| | | | | | dependent. Hopefully, this will fix PR3801. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81132 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a left over bit of code with no effect.Duncan Sands2009-09-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81128 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unreachable code.Duncan Sands2009-09-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81126 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid an unused variable warning when assertions areDuncan Sands2009-09-06
| | | | | | | disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81122 91177308-0d34-0410-b5e6-96231b3b80d8