Bob Wilson
6bbffe19e9
Add patterns to use post-increment addressing for Neon VST1-lane instructions.
...
llvm-svn: 126477
2011-02-25 06:42:42 +00:00
Evan Cheng
56354c17d9
Fix typo.
...
llvm-svn: 126467
2011-02-25 01:29:29 +00:00
Evan Cheng
fbdcea4b2e
Each prologue may have multiple vpush instructions to store callee-saved
...
D registers since the vpush list may not have gaps. Make sure the stack
adjustment instruction isn't moved between them. Ditto for vpop in
epilogues.
Sorry, can't reduce a small test case.
rdar://9043312
llvm-svn: 126457
2011-02-25 00:24:46 +00:00
Chris Lattner
55119c81aa
remove command line option debugging hook.
...
llvm-svn: 126441
2011-02-24 21:53:03 +00:00
Devang Patel
f2b2417c2c
Enable DebugInfo support for COFF object files.
...
Patch by Nathan Jeffords!
llvm-svn: 126425
2011-02-24 21:04:00 +00:00
Richard Osborne
a8df984a31
Add XCore intrinsic for eeu instruction.
...
llvm-svn: 126384
2011-02-24 13:39:18 +00:00
Evan Cheng
9db7b1367d
Fix bug in X86 folding / unfolding table. Int_CMPSDrm and Int_CMPSSrm memory
...
operands starts at index 2, not 1.
rdar://9045024
PR9305
llvm-svn: 126359
2011-02-24 02:36:52 +00:00
Richard Osborne
d9564589f6
Add XCore intrinsic for clre instruction.
...
llvm-svn: 126322
2011-02-23 18:52:05 +00:00
Richard Osborne
4a55817288
Add llvm.xcore.waitevent intrinsic. The effect of this intrinsic is to enable
...
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
2011-02-23 18:35:59 +00:00
Richard Osborne
aaac1b01fd
Add XCore intrinsic for the setv instruction.
...
llvm-svn: 126315
2011-02-23 16:46:37 +00:00
Richard Osborne
2374e9683e
Fix format for setc instruction.
...
llvm-svn: 126314
2011-02-23 15:20:16 +00:00
Richard Osborne
aa39bf94b4
Add XCore intrinsic for settw instruction.
...
llvm-svn: 126313
2011-02-23 14:45:03 +00:00
Evan Cheng
98e040ea71
Change VFPNeonA8 definition to make the code easier to read.
...
llvm-svn: 126298
2011-02-23 02:35:33 +00:00
Evan Cheng
da40bcab44
More fcopysign correctness and performance fix.
...
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
2011-02-23 02:24:55 +00:00
David Greene
7b0539174a
[AVX] General VUNPCKL codegen support.
...
llvm-svn: 126264
2011-02-22 23:31:46 +00:00
Joerg Sonnenberger
67e0eb235d
Use the same (%dx) hack for in[bwl] as for out[bwl].
...
llvm-svn: 126244
2011-02-22 20:40:09 +00:00
Evan Cheng
f540b0e0f6
VFP single precision arith instructions can go down to NEON pipeline, but on Cortex-A8 only.
...
llvm-svn: 126238
2011-02-22 19:53:14 +00:00
Roman Divacky
f028b1614b
Stack alignment is 16 bytes on FreeBSD/i386 too.
...
llvm-svn: 126226
2011-02-22 17:30:05 +00:00
Evan Cheng
f7c6f8580b
Guard against de-referencing MBB.end().
...
llvm-svn: 126192
2011-02-22 07:07:59 +00:00
Evan Cheng
6e3d087477
available_externally (hidden or not) GVs are always accessed via stubs. rdar://9027648.
...
llvm-svn: 126191
2011-02-22 06:58:34 +00:00
Eric Christopher
58b95654bc
Only use blx for external function calls on thumb, these could be fixed
...
up by the dynamic linker, but it's better to use the correct instruction
to begin with.
Fixes rdar://9011034
llvm-svn: 126176
2011-02-22 01:37:10 +00:00
Joerg Sonnenberger
9dceff5417
Recognize loopz and loopnz as aliases for loope and loopne.
...
From Dimitry Andric.
llvm-svn: 126168
2011-02-22 00:43:07 +00:00
Rafael Espindola
e4a04cce2b
Implement xgetbv and xsetbv.
...
Patch by Jai Menon.
llvm-svn: 126165
2011-02-22 00:35:18 +00:00
Evan Cheng
aaa5bd52f4
Skipping over debugvalue instructions to determine whether the split spot is in a IT block. rdar://9030770
...
llvm-svn: 126159
2011-02-21 23:40:47 +00:00
Devang Patel
d5c4589795
Revert r124611 - "Keep track of incoming argument's location while emitting 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
2011-02-21 23:21:26 +00:00
Sean Callanan
8aaf83f2b8
Fixed a bug in the X86 disassembler where a member of the
...
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
2011-02-21 21:55:05 +00:00
Richard Osborne
bd0e21b5ca
Add XCore intrinsics for various instructions on ports.
...
llvm-svn: 126132
2011-02-21 18:23:30 +00:00
Duncan Sands
77c058dc70
The stack should be 16 byte aligned on 32 bit solaris. Patch by Yuri.
...
llvm-svn: 126130
2011-02-21 17:37:17 +00:00
Chris Lattner
e7dc7e1e5b
a serious "compare CSE" issue that is nontrivial to get right,
...
but which is responsible for us doing really bad things to 256.bzip2.
llvm-svn: 126126
2011-02-21 17:03:47 +00:00
NAKAMURA Takumi
a03e9f0267
Target/X86/X86FastISel: [PR6275] Fix Win32's dllimport function with fastisel.
...
"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
2011-02-21 04:50:06 +00:00
Venkatraman Govindaraju
1a5bbc7f1e
Generate correct Sparc32 ABI compliant code for functions that return a struct.
...
llvm-svn: 126108
2011-02-21 03:42:44 +00:00
Chris Lattner
c373140c8b
add a missed loop deletion case.
...
llvm-svn: 126103
2011-02-21 02:13:39 +00:00
Chris Lattner
8760c28fe1
add an idiom that loop idiom could theoretically catch.
...
llvm-svn: 126101
2011-02-21 01:33:38 +00:00
Cameron Zwarich
3384d8f317
A lo/hi mul has higher latency than an imul r,ri, e.g. 5 cycles compared to 3
...
on Core 2 and Nehalem, so the code we generate is better than GCC's here.
llvm-svn: 126100
2011-02-21 01:29:32 +00:00
Cameron Zwarich
b7e676db6c
The signed version of our "magic number" computation for the integer 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
2011-02-21 00:22:02 +00:00
Eric Christopher
568548ce13
If both operands are loads from stores in memory we can't use movlpd/movlps
...
since one needs to be a register operand. Just use movss instead of forcing
an operand into a register.
Fixes PR9239
llvm-svn: 126072
2011-02-20 05:04:42 +00:00
Oscar Fuentes
59c8ae34f7
Use explicit add_subdirectory's for LLVM target sublibraries instead
...
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
2011-02-20 02:55:27 +00:00
Eli Friedman
0ad25251cb
Minor x86 README updates.
...
llvm-svn: 126054
2011-02-19 21:54:28 +00:00
Chris Lattner
7cd801727d
implement PR9264: disambiguating 'bt mem, imm' as a btl.
...
This is reasonable to do since all bt-mem forms do the
same thing.
llvm-svn: 126047
2011-02-19 21:06:36 +00:00
Eric Christopher
67a5a75e28
Fix typos.
...
llvm-svn: 126018
2011-02-19 03:19:09 +00:00
Joerg Sonnenberger
4652f152e4
Avoid dangling else warnings.
...
llvm-svn: 126004
2011-02-19 00:43:45 +00:00
Chris Lattner
a0dede2c21
add a way to disable all builtins, wire it up to opt's -disable-simplifylibcalls flag.
...
llvm-svn: 125978
2011-02-18 22:34:03 +00:00
Oscar Fuentes
6e5d344a2e
Move library stuff out of the toplevel CMakeLists.txt file.
...
llvm-svn: 125968
2011-02-18 22:06:14 +00:00
Chris Lattner
63dfb2c797
introduce a new TargetLibraryInfo pass, which transformations can use to
...
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
2011-02-18 21:50:34 +00:00
Bruno Cardoso Lopes
d97e3e6dad
Fix style and a typo
...
llvm-svn: 125949
2011-02-18 19:49:06 +00:00
Bruno Cardoso Lopes
ad05904e0b
Add assembly parsing support for "msr" and also fix its encoding. Also add
...
testcases for the disassembler to make sure it still works for "msr".
llvm-svn: 125948
2011-02-18 19:45:59 +00:00
Chris Lattner
2aebf9f4ad
add a poor division by constant case.
...
llvm-svn: 125832
2011-02-18 05:35:49 +00:00
Joerg Sonnenberger
efa8090e2a
Recognize monitor/mwait with explicit register arguments
...
llvm-svn: 125805
2011-02-18 00:48:11 +00:00
Joerg Sonnenberger
9f8f3a2c59
Recognize leavel and leaveq aliases for leave.
...
Validate encoding of leave in 64bit mode.
llvm-svn: 125795
2011-02-17 23:36:39 +00:00
David Greene
244920d662
[AVX] Recorganize X86ShuffleDecode into its own library
...
(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
2011-02-17 19:18:59 +00:00