aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a Thumb readme entry.Evan Cheng2009-07-091-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75173 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct comment.Evan Cheng2009-07-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75172 91177308-0d34-0410-b5e6-96231b3b80d8
* bug 4524: Add MSP430 to the cmake build.Richard Pennington2009-07-091-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75170 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle 'A' modifier in inline asms.Dale Johannesen2009-07-091-0/+9
| | | | | | | | | gcc.apple/asm-block-13.c gcc.apple/asm-block-57.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75169 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle Thumb-2 addressing modes during FP elimination.David Goodwin2009-07-091-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75158 91177308-0d34-0410-b5e6-96231b3b80d8
* Thread LLVMContext through MVT and related parts of SDISel.Owen Anderson2009-07-0910-37/+46
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
* Misc encoding fixes; reported on llvmdev.Eli Friedman2009-07-091-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75142 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify this logic a bit more.Chris Lattner2009-07-091-6/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75118 91177308-0d34-0410-b5e6-96231b3b80d8
* move reasoning about darwin $non_lazy_ptr stubs from asmprinter intoChris Lattner2009-07-094-40/+98
| | | | | | | isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75117 91177308-0d34-0410-b5e6-96231b3b80d8
* Targets sometimes assign fixed stack object to spill certain callee-savedEvan Cheng2009-07-093-7/+23
| | | | | | | | | | | registers based on dynamic conditions. For example, X86 EBP/RBP, when used as frame register has to be spilled in the first fixed object. It should inform PEI this so it doesn't get allocated another stack object. Also, it should not be spilled as other callee-saved registers but rather its spilling and restoring are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75116 91177308-0d34-0410-b5e6-96231b3b80d8
* Reorg includes.Evan Cheng2009-07-092-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75115 91177308-0d34-0410-b5e6-96231b3b80d8
* rearrange some code, no functionality change.Chris Lattner2009-07-091-23/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75113 91177308-0d34-0410-b5e6-96231b3b80d8
* make direct calls set MO_PLT or MO_DARWIN_STUB as appropriate with fast isel.Chris Lattner2009-07-091-7/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75112 91177308-0d34-0410-b5e6-96231b3b80d8
* reduce nesting by rearranging branches.Chris Lattner2009-07-091-17/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75110 91177308-0d34-0410-b5e6-96231b3b80d8
* make isel use MO_PIC_BASE_OFFSET when lowering globalvalues on darwin in picChris Lattner2009-07-092-6/+5
| | | | | | | mode, instead of having asmprinter just "know" to print them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75109 91177308-0d34-0410-b5e6-96231b3b80d8
* various minor cleanups, no functionality change.Chris Lattner2009-07-091-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75108 91177308-0d34-0410-b5e6-96231b3b80d8
* make isel decide whether to emit $stub's on darwin instead of asmprinter.Chris Lattner2009-07-093-48/+48
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75107 91177308-0d34-0410-b5e6-96231b3b80d8
* pc-relative references are *always* to functions, never to globals. ISel Chris Lattner2009-07-091-21/+8
| | | | | | | is incapable of lowering direct references to globals like this, zap the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75106 91177308-0d34-0410-b5e6-96231b3b80d8
* make cygwin use its own stubs set, instead of overloading a darwin one.Chris Lattner2009-07-092-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75105 91177308-0d34-0410-b5e6-96231b3b80d8
* Make isel determine where to emit PLT-relative calls instead of havingChris Lattner2009-07-092-18/+31
| | | | | | | asmprinter do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75104 91177308-0d34-0410-b5e6-96231b3b80d8
* isPICStyleStub() is now never true in -static mode, so simplify code.Chris Lattner2009-07-091-9/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75102 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify some code based on the fact that picstyles != none are only valid Chris Lattner2009-07-094-23/+16
| | | | | | | in pic or dynamic-no-pic mode. Also, x86-64 never used picstylegot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75101 91177308-0d34-0410-b5e6-96231b3b80d8
* all this logic always returns true because GOT mode is never active in ↵Chris Lattner2009-07-091-16/+5
| | | | | | | | | x86-64 mode. Simplify it away, someone should evaluate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75100 91177308-0d34-0410-b5e6-96231b3b80d8
* isPICStyleRIPRel() and friends are never true in -static mode.Chris Lattner2009-07-092-36/+29
| | | | | | | Simplify code based on this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75099 91177308-0d34-0410-b5e6-96231b3b80d8
* Move PR4517 to README.txt.Nick Lewycky2009-07-091-0/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75098 91177308-0d34-0410-b5e6-96231b3b80d8
* .o file writing shouldn't mess around with pic/relo models like the JIT does.Chris Lattner2009-07-091-18/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75096 91177308-0d34-0410-b5e6-96231b3b80d8
* move a hack out of the asm-printer specific path to the main target ↵Chris Lattner2009-07-091-12/+17
| | | | | | selection path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75095 91177308-0d34-0410-b5e6-96231b3b80d8
* many more cleanups, for example if in the "none" pic-style,Chris Lattner2009-07-091-26/+26
| | | | | | | | make sure we're set to static codegen. Simplify the decision tree of target->picstyle/picmode settings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75094 91177308-0d34-0410-b5e6-96231b3b80d8
* Reduce indentation in GVRequiresExtraLoad. Return true for windowsChris Lattner2009-07-091-26/+28
| | | | | | | with DLLImport symbols even when in -static mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75093 91177308-0d34-0410-b5e6-96231b3b80d8
* When in -static mode, force the PIC style to none. Doing this requires fixingChris Lattner2009-07-093-19/+33
| | | | | | | | code which conflated RIPRel PIC with x86-64. Fix these to just check for X86-64 directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75092 91177308-0d34-0410-b5e6-96231b3b80d8
* merge two identical functions and simplify things that are GOT specificChris Lattner2009-07-091-41/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75091 91177308-0d34-0410-b5e6-96231b3b80d8
* hoist check for IsTailCall to callers. Eliminate redundant check for Chris Lattner2009-07-091-10/+6
| | | | | | | x86-64: GOT-style PIC is never used on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75090 91177308-0d34-0410-b5e6-96231b3b80d8
* change a few methods to be static functions.Chris Lattner2009-07-092-14/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75089 91177308-0d34-0410-b5e6-96231b3b80d8
* one more added assert.Chris Lattner2009-07-091-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75088 91177308-0d34-0410-b5e6-96231b3b80d8
* move handling of dllimport linkage in isel, not in asmprinter.Chris Lattner2009-07-094-17/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75086 91177308-0d34-0410-b5e6-96231b3b80d8
* one more assertion!Chris Lattner2009-07-091-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75083 91177308-0d34-0410-b5e6-96231b3b80d8
* add some more assertions. Remove code to handle dllimport on darwin.Chris Lattner2009-07-091-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75082 91177308-0d34-0410-b5e6-96231b3b80d8
* remove "asmcall", using print_pcrel_imm instead of printOperand.Chris Lattner2009-07-091-27/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75080 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify some logicChris Lattner2009-07-091-13/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75079 91177308-0d34-0410-b5e6-96231b3b80d8
* * add some assertions for sanity checking.Chris Lattner2009-07-091-23/+25
| | | | | | | | | | * remove some old code that was needed when we'd put ESP in the scale instead of the base of some instructions. * Fix a bug with the P modifier in inline asm that caused us to drop it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75077 91177308-0d34-0410-b5e6-96231b3b80d8
* Use common code for both ARM and Thumb-2 instruction and register info.David Goodwin2009-07-0812-1121/+97
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75067 91177308-0d34-0410-b5e6-96231b3b80d8
* * manually concatenate two string literalsChris Lattner2009-07-081-3/+1
| | | | | | | * remove some dead code: darwin doesn't support dllimport linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75066 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add some NEON ld / st instruction static encoding.Evan Cheng2009-07-082-4/+38
| | | | | | | | - Make bits 25-27 for ldrh, etc. explicitly zero. Previously only the JIT uses the encoding information and it's assuming anything not specified to be zero. Making them explicit so the disassembler is happy. Patch by Sean Callanan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75065 91177308-0d34-0410-b5e6-96231b3b80d8
* Change how so_imm and t2_so_imm are handled. At instruction selection time, ↵Evan Cheng2009-07-089-111/+48
| | | | | | the immediates are no longer encoded in the imm8 + rot format, that are left as it is. The encoding is now done in ams printing and code emission time instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75048 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommit r74952 with a bug fix:Bill Wendling2009-07-082-71/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DWARF requires frame moves be specified at specific times. If you have a prologue like this: __Z3fooi: Leh_func_begin1: LBB1_0: ## entry pushl %ebp Llabel1: movl %esp, %ebp Llabel2: pushl %esi Llabel3: subl $20, %esp call "L1$pb" "L1$pb": popl %esi The "pushl %ebp" needs a table entry specifying the offset. The "movl %esp, %ebp" makes %ebp the new stack frame register, so that needs to be specified in DWARF. And "pushl %esi" saves the callee-saved %esi register, which also needs to be specified in DWARF. Before, all of this logic was in one method. This didn't work too well, because as you can see there are multiple FDE line entries that need to be created. This fix creates the "MachineMove" objects directly when they're needed; instead of waiting until the end, and losing information. There is some ugliness where we generate code like this: LBB22_0: ## entry pushl %ebp Llabel280: movl %esp, %ebp Llabel281: Llabel284: pushl %ebp <---------- pushl %ebx pushl %edi pushl %esi Llabel282: subl $328, %esp Notice the extra "pushl %ebp". If we generate a "machine move" instruction in the FDE for that pushl, the linker may get very confused about what value %ebp should have when exitting the function. I.e., it'll give it the value %esp instead of the %ebp value from the first "pushl". Not to mention that, in this case, %ebp isn't modified in the function (that's a separate bug). I put a small hack in to get it to work. It might be the only solution, but should be revisited once the above case is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75047 91177308-0d34-0410-b5e6-96231b3b80d8
* Missed an exit during the conversion.Edwin Török2009-07-082-6/+6
| | | | | | | | Will convert assert(0) that don't have abort() to LLVM_UNREACHABLE in a later commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75045 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement changes from Chris's feedback.Edwin Török2009-07-0844-185/+246
| | | | | | | Finish converting lib/Target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75043 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement NEON vst1 instruction.Bob Wilson2009-07-081-0/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75037 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize opcode selection in ARMBaseRegisterInfo.David Goodwin2009-07-0812-63/+80
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75036 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix cmake build.Xerxes Ranby2009-07-081-0/+1
| | | | | | | Added ARMBaseRegisterInfo.cpp to lib/Target/ARM/CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75035 91177308-0d34-0410-b5e6-96231b3b80d8