summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Add XCore intrinsic for clre instruction.Richard Osborne2011-02-231-1/+3
| | | | llvm-svn: 126322
* Add llvm.xcore.waitevent intrinsic. The effect of this intrinsic is to enableRichard Osborne2011-02-231-1/+7
| | | | | | | events on the thread and wait until a resource is ready to event. The vector of the resource that is ready is returned. llvm-svn: 126320
* Add XCore intrinsic for the setv instruction.Richard Osborne2011-02-231-1/+6
| | | | llvm-svn: 126315
* Fix format for setc instruction.Richard Osborne2011-02-231-1/+1
| | | | llvm-svn: 126314
* Add XCore intrinsic for settw instruction.Richard Osborne2011-02-231-1/+5
| | | | llvm-svn: 126313
* Change VFPNeonA8 definition to make the code easier to read.Evan Cheng2011-02-232-8/+3
| | | | llvm-svn: 126298
* More fcopysign correctness and performance fix.Evan Cheng2011-02-231-33/+63
| | | | | | | | | | | | | The previous codegen for the slow path (when values are in VFP / NEON registers) was incorrect if the source is NaN. The new codegen uses NEON vbsl instruction to copy the sign bit. e.g. vmov.i32 d1, #0x80000000 vbsl d1, d2, d0 If NEON is not available, it uses integer instructions to copy the sign bit. rdar://9034702 llvm-svn: 126295
* [AVX] General VUNPCKL codegen support.David Greene2011-02-222-0/+20
| | | | llvm-svn: 126264
* Use the same (%dx) hack for in[bwl] as for out[bwl].Joerg Sonnenberger2011-02-221-0/+13
| | | | llvm-svn: 126244
* VFP single precision arith instructions can go down to NEON pipeline, but on ↵Evan Cheng2011-02-226-109/+114
| | | | | | Cortex-A8 only. llvm-svn: 126238
* Stack alignment is 16 bytes on FreeBSD/i386 too.Roman Divacky2011-02-222-3/+5
| | | | llvm-svn: 126226
* Guard against de-referencing MBB.end().Evan Cheng2011-02-221-1/+4
| | | | llvm-svn: 126192
* available_externally (hidden or not) GVs are always accessed via stubs. ↵Evan Cheng2011-02-221-1/+3
| | | | | | rdar://9027648. llvm-svn: 126191
* Only use blx for external function calls on thumb, these could be fixedEric Christopher2011-02-221-12/+26
| | | | | | | | | up by the dynamic linker, but it's better to use the correct instruction to begin with. Fixes rdar://9011034 llvm-svn: 126176
* Recognize loopz and loopnz as aliases for loope and loopne.Joerg Sonnenberger2011-02-221-0/+3
| | | | | | From Dimitry Andric. llvm-svn: 126168
* Implement xgetbv and xsetbv.Rafael Espindola2011-02-224-0/+19
| | | | | | Patch by Jai Menon. llvm-svn: 126165
* Skipping over debugvalue instructions to determine whether the split spot is ↵Evan Cheng2011-02-211-0/+3
| | | | | | in a IT block. rdar://9030770 llvm-svn: 126159
* Revert r124611 - "Keep track of incoming argument's location while emitting ↵Devang Patel2011-02-216-25/+25
| | | | | | | | | | | LiveIns." In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+) llvm-svn: 126155
* Fixed a bug in the X86 disassembler where a member of theSean Callanan2011-02-212-5/+5
| | | | | | | | X86 instruction decode structure was being interpreted as being in units of bits, although it is actually stored in units of bytes. llvm-svn: 126147
* Add XCore intrinsics for various instructions on ports.Richard Osborne2011-02-211-2/+24
| | | | llvm-svn: 126132
* The stack should be 16 byte aligned on 32 bit solaris. Patch by Yuri.Duncan Sands2011-02-212-3/+4
| | | | llvm-svn: 126130
* a serious "compare CSE" issue that is nontrivial to get right,Chris Lattner2011-02-211-0/+69
| | | | | | but which is responsible for us doing really bad things to 256.bzip2. llvm-svn: 126126
* Target/X86/X86FastISel: [PR6275] Fix Win32's dllimport function with fastisel.NAKAMURA Takumi2011-02-211-2/+6
| | | | | | | "dllimport" function must not be GlobalVariable, but Function. It is enough to check with GlobalValue. test/CodeGen/X86/dll-linkage.ll is updated to check llc -O0. llvm-svn: 126110
* Generate correct Sparc32 ABI compliant code for functions that return a struct.Venkatraman Govindaraju2011-02-214-8/+84
| | | | llvm-svn: 126108
* add a missed loop deletion case.Chris Lattner2011-02-211-0/+14
| | | | llvm-svn: 126103
* add an idiom that loop idiom could theoretically catch.Chris Lattner2011-02-211-0/+10
| | | | llvm-svn: 126101
* A lo/hi mul has higher latency than an imul r,ri, e.g. 5 cycles compared to 3Cameron Zwarich2011-02-211-35/+0
| | | | | | on Core 2 and Nehalem, so the code we generate is better than GCC's here. llvm-svn: 126100
* The signed version of our "magic number" computation for the integer ↵Cameron Zwarich2011-02-211-6/+4
| | | | | | | | | | | | | approximation of a constant had a minor typo introduced when copying it from the book, which caused it to favor negative approximations over positive approximations in many cases. Positive approximations require fewer operations beyond the multiplication. In the case of division by 3, we still generate code that is a single instruction larger than GCC's code. llvm-svn: 126097
* If both operands are loads from stores in memory we can't use movlpd/movlpsEric Christopher2011-02-201-0/+4
| | | | | | | | | since one needs to be a register operand. Just use movss instead of forcing an operand into a register. Fixes PR9239 llvm-svn: 126072
* Use explicit add_subdirectory's for LLVM target sublibraries insteadOscar Fuentes2011-02-2016-10/+41
| | | | | | | | | of testing for its presence at cmake time. This way the build automatically regenerates the makefiles when a svn update brings in a new sublibrary. llvm-svn: 126068
* Minor x86 README updates.Eli Friedman2011-02-191-20/+14
| | | | llvm-svn: 126054
* implement PR9264: disambiguating 'bt mem, imm' as a btl.Chris Lattner2011-02-191-0/+3
| | | | | | | This is reasonable to do since all bt-mem forms do the same thing. llvm-svn: 126047
* Fix typos.Eric Christopher2011-02-191-2/+2
| | | | llvm-svn: 126018
* Avoid dangling else warnings.Joerg Sonnenberger2011-02-191-1/+2
| | | | llvm-svn: 126004
* add a way to disable all builtins, wire it up to opt's ↵Chris Lattner2011-02-181-0/+6
| | | | | | -disable-simplifylibcalls flag. llvm-svn: 125978
* Move library stuff out of the toplevel CMakeLists.txt file.Oscar Fuentes2011-02-181-0/+50
| | | | llvm-svn: 125968
* introduce a new TargetLibraryInfo pass, which transformations can use toChris Lattner2011-02-183-0/+51
| | | | | | | | query about available library functions. For now this just has memset_pattern16, which exists on darwin, but it can be extended for a bunch of other things in the future. llvm-svn: 125965
* Fix style and a typoBruno Cardoso Lopes2011-02-181-4/+4
| | | | llvm-svn: 125949
* Add assembly parsing support for "msr" and also fix its encoding. Also addBruno Cardoso Lopes2011-02-187-47/+169
| | | | | | testcases for the disassembler to make sure it still works for "msr". llvm-svn: 125948
* add a poor division by constant case.Chris Lattner2011-02-181-0/+37
| | | | llvm-svn: 125832
* Recognize monitor/mwait with explicit register argumentsJoerg Sonnenberger2011-02-181-0/+8
| | | | llvm-svn: 125805
* Recognize leavel and leaveq aliases for leave.Joerg Sonnenberger2011-02-171-0/+3
| | | | | | Validate encoding of leave in 64bit mode. llvm-svn: 125795
* [AVX] Recorganize X86ShuffleDecode into its own libraryDavid Greene2011-02-177-33/+116
| | | | | | | | | | | | (LLVMX86Utils.a) to break cyclic library dependencies between LLVMX86CodeGen.a and LLVMX86AsmParser.a. Previously this code was in a header file and marked static but AVX requires some additional functionality here that won't be used by all clients. Since including unused static functions causes a gcc compiler warning, keeping it as a header would break builds that use -Werror. Putting this in its own library solves both problems at once. llvm-svn: 125765
* The labyrinthine X86 backend no longer appears to requireDan Gohman2011-02-171-37/+0
| | | | | | these patterns. llvm-svn: 125759
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.NAKAMURA Takumi2011-02-175-8/+2
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747
* Fix whitespace.NAKAMURA Takumi2011-02-172-9/+9
| | | | llvm-svn: 125746
* This has been implemented.Duncan Sands2011-02-171-10/+0
| | | | llvm-svn: 125738
* add some notes on compares + binops. Remove redundant entries.Chris Lattner2011-02-171-20/+47
| | | | llvm-svn: 125702
* Add a few missed xforms from GCC PR14753Chris Lattner2011-02-161-0/+29
| | | | llvm-svn: 125681
* Swap VT and DebugLoc operands of getExtLoad() for consistency withStuart Hastings2011-02-166-9/+9
| | | | | | other getNode() methods. Radar 9002173. llvm-svn: 125665
OpenPOWER on IntegriCloud