summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* add an x86 implementation of MCTargetExpr forChris Lattner2010-02-084-3/+89
| | | | | | | representing @GOT and friends. Use it for personality references as a first use. llvm-svn: 95588
* Add VCVTR (between floating-point and integer, VFP) for disassembly purpose.Johnny Chen2010-02-081-0/+31
| | | | | | | | | The 'R' suffix means the to-integer operations use the rounding mode specified by the FPSCR, encoded as Inst{7} = 0. A8.6.295 llvm-svn: 95584
* Rename the PerformTailCallOpt variable to GuaranteedTailCallOpt to reflectDan Gohman2010-02-085-23/+23
| | | | | | its current purpose. llvm-svn: 95564
* Add VCMP (VFP floating-point compare without 'E' bit set) for disassembly ↵Johnny Chen2010-02-081-0/+16
| | | | | | purpose. llvm-svn: 95560
* Added VMOVRRS/VMOVSRR to ARMInstrVFP.td for disassembly purpose.Johnny Chen2010-02-081-0/+14
| | | | | | A8.6.331 VMOV (between two ARM core registers and two single-precision registers) llvm-svn: 95548
* Fix x86 JIT stub on MSVC.Torok Edwin2010-02-081-0/+1
| | | | | | Thanks to Kristaps Straupe for noticing the bug. llvm-svn: 95537
* Add suport for VASTART on Mips.Bruno Cardoso Lopes2010-02-062-0/+22
| | | | llvm-svn: 95506
* First step towards varargs support in Mips:Bruno Cardoso Lopes2010-02-061-38/+117
| | | | | | | | - o32 cc must pass all arguments in A0...A3 and stack regardless if its type (but respect the alignment). - Store all variable arguments back to the caller stack. llvm-svn: 95500
* Run codegen dce pass for all targets at all optimization levels. Previously it'sEvan Cheng2010-02-061-4/+0
| | | | | | | | | | only run for x86 with fastisel. I've found it being very effective in eliminating some obvious dead code as result of formal parameter lowering especially when tail call optimization eliminated the need for some of the loads from fixed frame objects. It also shrinks a number of the tests. A couple of tests no longer make sense and are now eliminated. llvm-svn: 95493
* Fix alignment on ppc linux. This fixes the build of crtend.oRafael Espindola2010-02-061-0/+3
| | | | llvm-svn: 95477
* Do not emit callseq instructions around sibcalls. This eliminated some ↵Evan Cheng2010-02-062-23/+27
| | | | | | unnecessary stack adjustments. llvm-svn: 95475
* Reintroduce the InlineHint function attribute.Jakob Stoklund Olesen2010-02-061-0/+1
| | | | | | | | | | | | This time it's for real! I am going to hook this up in the frontends as well. The inliner has some experimental heuristics for dealing with the inline hint. When given a -respect-inlinehint option, functions marked with the inline keyword are given a threshold just above the default for -O3. We need some experiments to determine if that is the right thing to do. llvm-svn: 95466
* Handle AddrMode6 (for NEON load/stores) in Thumb2's rewriteT2FrameIndex.Bob Wilson2010-02-061-11/+10
| | | | | | Radar 7614112. llvm-svn: 95456
* fix incorrect encoding of SBB8mi that Kevin noticed.Chris Lattner2010-02-051-2/+2
| | | | llvm-svn: 95448
* fix a case where we'd mis-encode fisttp because of an incorrect (andChris Lattner2010-02-051-1/+0
| | | | | | redundant with a correct one) pattern that was added for the disassembler. llvm-svn: 95446
* add note.Chris Lattner2010-02-051-0/+2
| | | | llvm-svn: 95445
* port X86InstrInfo::determineREX over to the new encoder.Chris Lattner2010-02-053-10/+109
| | | | llvm-svn: 95440
* wire up 64-bit MCCodeEmitter.Chris Lattner2010-02-053-9/+17
| | | | llvm-svn: 95438
* really kill off the last MRMInitReg inst, remove logic from encoder.Chris Lattner2010-02-054-17/+9
| | | | llvm-svn: 95437
* lower the last of the MRMInitReg instructions in MCInstLower.Chris Lattner2010-02-053-9/+16
| | | | llvm-svn: 95435
* teach X86MCInstLower to lower the MOV32r0 and MOV8r0 Chris Lattner2010-02-052-6/+14
| | | | | | 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-053-53/+40
| | | | | | lower the SETB* instructions. llvm-svn: 95431
* implement the rest of the encoding types.Chris Lattner2010-02-051-3/+108
| | | | llvm-svn: 95414
* move functions for decoding X86II values into the X86II namespace.Chris Lattner2010-02-054-45/+48
| | | | llvm-svn: 95410
* constant propagate a method away.Chris Lattner2010-02-052-11/+5
| | | | llvm-svn: 95408
* change getSizeOfImm and getBaseOpcodeFor to just takeChris Lattner2010-02-055-48/+46
| | | | | | TSFlags directly instead of a TargetInstrDesc. llvm-svn: 95405
* add some more encodings.Chris Lattner2010-02-051-1/+36
| | | | llvm-svn: 95403
* VMOVRRD and VMOVDRR both have Inst{7-6} = 0b00.Johnny Chen2010-02-051-2/+6
| | | | llvm-svn: 95397
* implement the non-relocation forms of memory operandsChris Lattner2010-02-051-65/+111
| | | | llvm-svn: 95368
* Handle tail call with byval arguments.Evan Cheng2010-02-051-24/+61
| | | | llvm-svn: 95351
* start adding MRMDestMem, which requires memory form mod/rm encodingChris Lattner2010-02-051-1/+158
| | | | | | to start limping. llvm-svn: 95350
* Add a few more encodings, we can now encode all of:Chris Lattner2010-02-052-33/+58
| | | | | | | | | | pushl %ebp movl %esp, %ebp movl $42, %eax popl %ebp ret llvm-svn: 95344
* Disable external stubs for X86-32 and X86-64Evan Phoenix2010-02-041-1/+8
| | | | | | | | | Instruction selection for X86 now can choose an instruction sequence that will fit any address of any symbol, no matter the pointer width. X86-64 uses a mov+call-via-reg sequence for this. llvm-svn: 95323
* move the PR6214 microoptzn to this file.Chris Lattner2010-02-041-0/+18
| | | | llvm-svn: 95299
* Re-enable x86 tail call optimization.Evan Cheng2010-02-041-3/+0
| | | | llvm-svn: 95295
* add support for the sparcv9-*-* target triple to turn onChris Lattner2010-02-047-29/+68
| | | | | | 64-bit sparc codegen. Patch by Nathan Keynes! llvm-svn: 95293
* Indirect tail call has to go through a call preserved register since it's ↵Evan Cheng2010-02-041-15/+14
| | | | | | | | after callee register pops. X86 isel lowering is using EAX / R11 and it was somehow adding that to function live out. That prevented the real function return register from being added to the function live out list and bad things happen. This fixes 483.xalancbmk (with tail call opt). llvm-svn: 95280
* 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
* enhance new encoder to support prefixes + RawFrm Chris Lattner2010-02-033-7/+133
| | | | | | | | instructions with no operands. It can now handle define void @test2() nounwind { ret void } llvm-svn: 95261
* set up some infrastructure, some minor cleanups.Chris Lattner2010-02-031-5/+39
| | | | llvm-svn: 95260
* Speculatively disable x86 automatic tail call optimization while we track ↵Evan Cheng2010-02-031-0/+3
| | | | | | down a self-hosting issue. llvm-svn: 95259
* stub out a new X86 encoder, which can be tried withChris Lattner2010-02-035-1/+56
| | | | | | -enable-new-x86-encoder until its stable. llvm-svn: 95256
* rename createX86MCCodeEmitter to more accurately reflect what it creates.Chris Lattner2010-02-033-5/+7
| | | | llvm-svn: 95254
* Added support for X86 instruction prefixes so llvm-mc can assemble them. TheKevin Enderby2010-02-032-6/+52
| | | | | | | | | | Lock prefix, Repeat string operation prefixes and the Segment override prefixes. Also added versions of the move string and store string instructions without the repeat prefixes to X86InstrInfo.td. And finally marked the rep versions of move/store string records in X86InstrInfo.td as isCodeGenOnly = 1 so tblgen is happy building the disassembler files. llvm-svn: 95252
* reapply r95206, this time actually delete the code I'm replacing in the ↵Chris Lattner2010-02-031-9/+23
| | | | | | third stub case. llvm-svn: 95209
* revert r95206, it is apparently causing bootstrap failure on i386-darwin9Chris Lattner2010-02-031-24/+7
| | | | llvm-svn: 95208
* make the x86 backend emit darwin stubs through mcstreamerChris Lattner2010-02-031-7/+24
| | | | | | instead of textually. llvm-svn: 95206
* make MachineModuleInfoMachO hold non-const MCSymbol*'s insteadChris Lattner2010-02-035-21/+20
| | | | | | | of const ones. non-const ones aren't very useful, because you can't even, say, emit them. llvm-svn: 95205
* Allow all types of callee's to be tail called. But avoid automatic tailcall ↵Evan Cheng2010-02-031-17/+1
| | | | | | if the callee is a result of bitcast to avoid losing necessary zext / sext etc. llvm-svn: 95195
OpenPOWER on IntegriCloud