- Jul 28, 2011
-
-
Kevin Enderby authored
llvm-mc gives an "invalid operand" error for instructions that take an unsigned immediate which have the high bit set such as: pblendw $0xc5, %xmm2, %xmm1 llvm-mc treats all x86 immediates as signed values and range checks them. A small number of x86 instructions use the imm8 field as a set of bits. This change only changes those instructions and where the high bit is not ignored. The others remain unchanged. llvm-svn: 136287
-
- Jul 14, 2011
-
-
Benjamin Kramer authored
llvm-svn: 135198
-
- Jul 08, 2011
-
-
Evan Cheng authored
- Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". llvm-svn: 134678
-
- Jul 06, 2011
-
-
Kevin Enderby authored
push with a small constant produces a 2-byte push. llvm-svn: 134501
-
- Jun 04, 2011
-
-
Stuart Hastings authored
rdar://problem/5993888 llvm-svn: 132606
-
- Jun 02, 2011
-
-
Rafael Espindola authored
llvm-svn: 132479
-
- Jun 01, 2011
-
-
-
-
Stuart Hastings authored
floating-point comparison, generate a mask of 0s or 1s, and generally DTRT with NaNs. Only profitable when the user wants a materialized 0 or 1 at runtime. rdar://problem/5993888 llvm-svn: 132404
-
- May 23, 2011
-
-
Chris Lattner authored
llvm-svn: 131874
-
- May 20, 2011
-
-
Stuart Hastings authored
rdar://problem/8614450 llvm-svn: 131746
-
- Apr 20, 2011
-
-
Nick Lewycky authored
llvm is built with unsigned chars where an immediate such as 0xff would be zero extended to 64-bits, turning "cmp $0xff,%eax" into "cmp $0xffffffffffffffff,%eax". llvm-svn: 129845
-
- Apr 18, 2011
-
-
Chris Lattner authored
the generated FastISel. X86 doesn't need to generate code to match ADD16ri8 since ADD16ri will do just fine. This is a small codesize win in the generated instruction selector. llvm-svn: 129692
-
Chris Lattner authored
simplifying them and exposing more information to tblgen. It would be nice if other target authors adopted this as well, particularly arm since it has fastisel. llvm-svn: 129676
-
Chris Lattner authored
kind of predicate: one that is specific to imm nodes. The predicate function specified here just checks an int64_t directly instead of messing around with SDNode's. The virtue of this is that it means that fastisel and other things can reason about these predicates. llvm-svn: 129675
-
- Apr 17, 2011
-
-
Chris Lattner authored
structure and fix some fixmes. We now have a TreePredicateFn class that handles all of the decoding of these things. This is an internal cleanup that has no impact on the code generated by tblgen. llvm-svn: 129670
-
- Apr 14, 2011
-
-
Bill Wendling authored
(movzx/movsx) because they give more information. Revert that part of the patch. llvm-svn: 129498
-
Bill Wendling authored
cases, it's much nicer and more informative reading the alias. llvm-svn: 129497
-
Bill Wendling authored
the alias". llvm-svn: 129485
-
- Feb 22, 2011
-
-
Joerg Sonnenberger authored
From Dimitry Andric. llvm-svn: 126168
-
- Feb 19, 2011
-
-
Chris Lattner authored
This is reasonable to do since all bt-mem forms do the same thing. llvm-svn: 126047
-
- Feb 18, 2011
-
-
Joerg Sonnenberger authored
Validate encoding of leave in 64bit mode. llvm-svn: 125795
-
- Jan 26, 2011
-
-
NAKAMURA Takumi authored
llvm-svn: 124272
-
NAKAMURA Takumi authored
llvm-svn: 124270
-
- Dec 30, 2010
-
-
Nick Lewycky authored
Fixes PR8861. llvm-svn: 122641
-
- Dec 23, 2010
-
-
Chris Lattner authored
llvm-svn: 122513
-
- Dec 20, 2010
-
-
Chris Lattner authored
their carry depenedencies with MVT::Flag operands) and use clean and beautiful EFLAGS dependences instead. We do this by changing the modelling of SBB/ADC to have EFLAGS input and outputs (which is what requires the previous scheduler change) and change X86 ISelLowering to custom lower ADDC and friends down to X86ISD::ADD/ADC/SUB/SBB nodes. With the previous series of changes, this causes no changes in the testsuite, woo. llvm-svn: 122213
-
- Dec 10, 2010
-
-
Nate Begeman authored
Formalize the notion that AVX and SSE are non-overlapping extensions from the compiler's point of view. Per email discussion, we either want to always use VEX-prefixed instructions or never use them, and are taking "HasAVX" to mean "Always use VEX". Passing -mattr=-avx,+sse42 should serve to restore legacy SSE support when desirable. llvm-svn: 121439
-
- Dec 09, 2010
-
-
Eric Christopher authored
the output to the correct register. Fixes a hidden problem uncovered by the last patch where we'd try to DAG combine our MVT::Other node oddly. llvm-svn: 121358
-
- Dec 05, 2010
-
-
Chris Lattner authored
backend that they were all implemented except umul. This one fell back to the default implementation that did a hi/lo multiply and compared the top. Fix this to check the overflow flag that the 'mul' instruction sets, so we can avoid an explicit test. Now we compile: void *func(long count) { return new int[count]; } into: __Z4funcl: ## @_Z4funcl movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00] movq %rdi, %rax ## encoding: [0x48,0x89,0xf8] mulq %rcx ## encoding: [0x48,0xf7,0xe1] seto %cl ## encoding: [0x0f,0x90,0xc1] testb %cl, %cl ## encoding: [0x84,0xc9] movq $-1, %rdi ## encoding: [0x48,0xc7,0xc7,0xff,0xff,0xff,0xff] cmoveq %rax, %rdi ## encoding: [0x48,0x0f,0x44,0xf8] jmp __Znam ## TAILCALL instead of: __Z4funcl: ## @_Z4funcl movl $4, %ecx ## encoding: [0xb9,0x04,0x00,0x00,0x00] movq %rdi, %rax ## encoding: [0x48,0x89,0xf8] mulq %rcx ## encoding: [0x48,0xf7,0xe1] testq %rdx, %rdx ## encoding: [0x48,0x85,0xd2] movq $-1, %rdi ## encoding: [0x48,0xc7,0xc7,0xff,0xff,0xff,0xff] cmoveq %rax, %rdi ## encoding: [0x48,0x0f,0x44,0xf8] jmp __Znam ## TAILCALL Other than the silly seto+test, this is using the o bit directly, so it's going in the right direction. llvm-svn: 120935
-
- Dec 03, 2010
-
-
Nate Begeman authored
I'm unclear if the tests are actually correct or not, but reverting for now. llvm-svn: 120847
-
Nate Begeman authored
it completely breaks scalar fp in xmm regs when AVX is enabled. llvm-svn: 120843
-
- Nov 27, 2010
-
-
Rafael Espindola authored
llvm-svn: 120224
-
- Nov 23, 2010
-
-
Rafael Espindola authored
llvm-svn: 120017
-
- Nov 21, 2010
-
-
Chris Lattner authored
when transfering between i64 gprs and mmx regs. llvm-svn: 119931
-
- Nov 12, 2010
-
-
Chris Lattner authored
llvm-svn: 118916
-
- Nov 06, 2010
-
-
Chris Lattner authored
implementing rdar://8431864 llvm-svn: 118364
-
Chris Lattner authored
different forms of this instruction (movw/movl/movq) which we reported as being ambiguous. Since they all do the same thing, gas just picks the one with the shortest encoding. Follow its lead here. This implements rdar://8208615 llvm-svn: 118362
-
Chris Lattner authored
llvm-svn: 118361
-
Chris Lattner authored
llvm-svn: 118358
-