- Oct 01, 2010
-
-
Dale Johannesen authored
The x86_mmx type is used for MMX intrinsics, parameters and return values where these use MMX registers, and is also supported in load, store, and bitcast. Only the above operations generate MMX instructions, and optimizations do not operate on or produce MMX intrinsics. MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into smaller pieces. Optimizations may occur on these forms and the result casted back to x86_mmx, provided the result feeds into a previous existing x86_mmx operation. The point of all this is prevent optimizations from introducing MMX operations, which is unsafe due to the EMMS problem. llvm-svn: 115243
-
- Sep 30, 2010
-
-
Jim Grosbach authored
or not. TableGen needs to generate the printInstruction() function as taking an MCInstr* or a MachineInstr*, depending. Default to the old non-MC version so that everything not yet using MC continues to just work without fidding. llvm-svn: 115126
-
Evan Cheng authored
pipeline forwarding path. llvm-svn: 115098
-
Jim Grosbach authored
llvm-svn: 115096
-
- Sep 29, 2010
-
-
Chris Lattner authored
operands. With this done, we can remove the _Int suffixes from the round instructions without the disassembler blowing up. This allows the assembler to support them, implementing rdar://8456376 - llvm-mc rejects 'roundss' llvm-svn: 115019
-
Evan Cheng authored
llvm-svn: 115005
-
- Sep 27, 2010
-
-
Benjamin Kramer authored
llvm-svn: 114847
-
- Sep 24, 2010
-
-
Michael J. Spencer authored
llvm-svn: 114750
-
Owen Anderson authored
reflection, this isn't going to achieve the purpose I intended it for. Back to the drawing board! llvm-svn: 114710
-
Owen Anderson authored
Not intended functionality change, as nothing uses this yet. llvm-svn: 114702
-
- Sep 23, 2010
-
-
Nate Begeman authored
llvm-svn: 114659
-
rdar://problem/8228022Nate Begeman authored
Explicitly cast arguments to the type the builtin expects, which is <vN x i8> llvm-svn: 114596
-
- Sep 22, 2010
-
-
Chris Lattner authored
that complex patterns are matched after the entire pattern has a structural match, therefore the NodeStack isn't in a useful state when the actual call to the matcher happens. llvm-svn: 114489
-
- Sep 21, 2010
-
-
Chris Lattner authored
matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. llvm-svn: 114472
-
Chris Lattner authored
passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471
-
Mikhail Glushenkov authored
llvm-svn: 114435
-
Mikhail Glushenkov authored
llvm-svn: 114433
-
- Sep 18, 2010
-
-
Eric Christopher authored
llvm-svn: 114293
-
- Sep 15, 2010
-
-
Bob Wilson authored
functions, since int64 is not a legal type and using it leads to inefficient code. PR8036. llvm-svn: 113919
-
- Sep 14, 2010
-
-
Bob Wilson authored
llvm-svn: 113865
-
Michael J. Spencer authored
This may produce warnings on MSVS, but it's better than failures. llvm-svn: 113834
-
- Sep 11, 2010
-
-
Dale Johannesen authored
llvm-svn: 113671
-
- Sep 09, 2010
-
-
Evan Cheng authored
instruction in the class would be decoded to. Or zero if the number of uOPs must be determined dynamically. This will be used to determine the cost-effectiveness of predicating a micro-coded instruction. llvm-svn: 113513
-
-
- Sep 07, 2010
-
-
Bill Wendling authored
llvm-svn: 113261
-
Bill Wendling authored
llvm-svn: 113250
-
Dale Johannesen authored
Enable palignr intrinsic. These may need adjustment for a new VT in due course. llvm-svn: 113233
-
Chris Lattner authored
llvm-svn: 113198
-
Gabor Greif authored
llvm-svn: 113197
-
Chris Lattner authored
is busted for all variants, report it as the location. This allows us to get the operand right for bugs like: t.s:3:12: error: invalid operand for instruction outb %al, %gs ^ Even though there are reg/imm and reg/reg forms of this instruction. llvm-svn: 113183
-
Chris Lattner authored
of a mneumonic, report operand errors with better location info. For example, we now report: t.s:6:14: error: invalid operand for instruction cwtl $1 ^ but we fail for common cases like: t.s:11:4: error: invalid operand for instruction addl $1, $1 ^ because we don't know if this is supposed to be the reg/imm or imm/reg form. llvm-svn: 113178
-
- Sep 06, 2010
-
-
Chris Lattner authored
give a more detailed error. Before: t.s:11:4: error: unrecognized instruction addl $1, $1 ^ t.s:12:4: error: unrecognized instruction f2efqefa $1 ^ After: t.s:11:4: error: invalid operand for instruction addl $1, $1 ^ t.s:12:4: error: invalid instruction mnemonic 'f2efqefa' f2efqefa $1 ^ This fixes rdar://8017912 - llvm-mc says "unrecognized instruction" when it means "invalid operands" llvm-svn: 113176
-
Chris Lattner authored
llvm-svn: 113174
-
Chris Lattner authored
llvm-svn: 113173
-
Chris Lattner authored
llvm-svn: 113172
-
Chris Lattner authored
by doing a binary search over the mnemonic instead of doing a linear search through all possible instructions. This implements rdar://7785064 llvm-svn: 113171
-
Chris Lattner authored
MatchInstructionImpl. This makes it easier to read/understand MatchInstructionImpl. llvm-svn: 113170
-
Chris Lattner authored
generated matcher, emiting it as a column in the MatchEntry table instead of forcing it to go through classification and everything else. Making it be classified caused tblgen to produce a ton of one-off classes for each mneumonic. This should reduce the size of the generated matcher significantly while paving the way for future improvements. llvm-svn: 113169
-
Chris Lattner authored
so only do the N^2 loop with debug mode. llvm-svn: 113168
-
Chris Lattner authored
failed because a subtarget feature was not enabled. Use this to remove a bunch of hacks from the X86AsmParser for rejecting things like popfl in 64-bit mode. Previously these hacks weren't needed, but were important to get a message better than "invalid instruction" when used in the wrong mode. This also fixes bugs where pushal would not be rejected correctly in 32-bit mode (just pusha). llvm-svn: 113166
-