- Oct 02, 2011
-
-
Craig Topper authored
Fix some Intel syntax disassembly issues with instructions that implicitly use AL/AX/EAX/RAX such as ADD/SUB/ADC/SUBB/XOR/OR/AND/CMP/MOV/TEST. llvm-svn: 140974
-
Craig Topper authored
Special case disassembler handling of REX.B prefix on NOP instruction to decode as XCHG R8D, EAX instead. Fixes PR10344. llvm-svn: 140971
-
- Oct 01, 2011
-
-
Craig Topper authored
llvm-svn: 140955
-
Craig Topper authored
Fix disassembler handling of CRC32 which is an odd instruction that uses 0xf2 as an opcode extension and allows the opsize prefix. This necessitated adding IC_XD_OPSIZE and IC_64BIT_XD_OPSIZE contexts. Unfortunately, this increases the size of the disassembler tables. Fixes PR10702. llvm-svn: 140954
-
Jakob Stoklund Olesen authored
This uses less memory and it reduces the complexity of sub-class operations: - hasSubClassEq() and friends become O(1) instead of O(N). - getCommonSubClass() becomes O(N) instead of O(N^2). In the future, TableGen will infer register classes. This makes it cheap to add them. llvm-svn: 140898
-
- Sep 29, 2011
-
-
Jakob Stoklund Olesen authored
This also makes it possible to reduce the number of pseudo instructions and get rid of the encoding information. llvm-svn: 140776
-
- Sep 28, 2011
-
-
Eli Friedman authored
llvm-svn: 140723
-
Jakob Stoklund Olesen authored
I'll clean up the source in the next commit. llvm-svn: 140663
-
Jakob Stoklund Olesen authored
This also enables domain swizzling for AVX code which required a few trivial test changes. The pass will be moved to lib/CodeGen shortly. llvm-svn: 140659
-
Jakob Stoklund Olesen authored
I am going to unify the SSEDomainFix and NEONMoveFix passes into a single target independent pass. They are essentially doing the same thing. llvm-svn: 140652
-
- Sep 26, 2011
-
-
Craig Topper authored
llvm-svn: 140515
-
- Sep 24, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 140441
-
- Sep 23, 2011
-
-
Duncan Sands authored
hadd/hsub intrinsics into the new fhadd/fhsub X86 node. llvm-svn: 140383
-
Eli Friedman authored
PR10991: make fast-isel correctly check whether accessing a global through an alias involves thread-local storage. (I'm not entirely sure how this is supposed to work, but this patch makes fast-isel consistent with the normal isel path.) llvm-svn: 140355
-
Jakob Stoklund Olesen authored
We already support GR64 <-> VR128 copies. All of these copies break partial register dependencies by zeroing the high part of the target register. llvm-svn: 140348
-
- Sep 22, 2011
-
-
Duncan Sands authored
floating point add/sub of appropriate shuffle vectors. Does not synthesize the 256 bit AVX versions because they work differently. llvm-svn: 140332
-
Craig Topper authored
Fix register printing in disassembling of push/pop of segment registers and in/out in Intel syntax mode. Fixes PR10960 llvm-svn: 140299
-
Benjamin Kramer authored
- x87: no min or max. - SSE1: min/max for single precision scalars and vectors. - SSE2: min/max for single and double precision scalars and vectors. - AVX: as SSE2, but also supports the wider ymm vectors. (this is covered by the isTypeLegal check) llvm-svn: 140296
-
Benjamin Kramer authored
llvm-svn: 140294
-
- Sep 21, 2011
-
-
Benjamin Kramer authored
Otherwise we'll spend a ridiculous amount of time pretty printing debug output and then discarding it. llvm-svn: 140276
-
Nadav Rotem authored
llvm-svn: 140258
-
Nadav Rotem authored
Insert a sanity check on the combining of x86 truncing-store nodes. This comes to replace the problematic check that was removed in r139995. llvm-svn: 140246
-
Richard Trieu authored
assert(!"error message"); To: assert(0 && "error message"); which is more consistant across the code base. llvm-svn: 140234
-
Owen Anderson authored
In the disassembler C API, be careful not to confuse the comment streamer that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on. llvm-svn: 140217
-
Bruno Cardoso Lopes authored
llvm-svn: 140203
-
Bruno Cardoso Lopes authored
llvm-svn: 140199
-
- Sep 20, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 140186
-
Bruno Cardoso Lopes authored
This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen declaration. llvm-svn: 140184
-
Bruno Cardoso Lopes authored
llvm-svn: 140183
-
Craig Topper authored
llvm-svn: 140140
-
Bruno Cardoso Lopes authored
llvm-svn: 140098
-
Bruno Cardoso Lopes authored
128-bit undef subvector insertion into a 256-bit vector llvm-svn: 140097
-
- Sep 19, 2011
-
-
Bruno Cardoso Lopes authored
PR10955 and PR10948. llvm-svn: 140069
-
- Sep 18, 2011
-
-
Nadav Rotem authored
llvm-svn: 140003
-
Nadav Rotem authored
llvm-svn: 140001
-
Nadav Rotem authored
dag-combine optimization to implement the ext-load efficiently (using shuffles). For example the type <4 x i8> is stored in memory as i32, but it needs to find its way into a <4 x i32> register. Previously we scalarized the memory access, now we use shuffles. llvm-svn: 139995
-
Craig Topper authored
llvm-svn: 139993
-
- Sep 17, 2011
-
-
Duncan Sands authored
maxps and maxpd). This broke the sse41-blend.ll testcase by causing maxpd to be produced rather than a cmp+blend pair, which is the reason I tweaked it. Gives a small speedup on doduc with dragonegg when the GCC vectorizer is used. llvm-svn: 139986
-
Bruno Cardoso Lopes authored
mayLoad = 1 llvm-svn: 139973
-
Bruno Cardoso Lopes authored
are declared with load patterns. This fix the crash in PR10941. No testcases, since a fold is triggered and then converted back to the register form afterwards. llvm-svn: 139953
-