- Oct 06, 2010
-
-
Chris Lattner authored
(e.g. CMOVBE16rr instead of CMOVBErr16). llvm-svn: 115705
-
Chris Lattner authored
21 insertions(+), 53 deletions(-) Moar change coming before I switch the rest. llvm-svn: 115697
-
- 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
-
Chris Lattner authored
Clean up cvttps2dq by removing some redundant implementations of the same instruction. rdar://8456382 llvm-svn: 115018
-
-
- Sep 22, 2010
-
-
rdar://8456412Chris Lattner authored
Teaching the code generator about CR8-15, how to rex them up, etc. llvm-svn: 114533
-
- Sep 17, 2010
-
-
Dan Gohman authored
This fixes rdar://8396318. llvm-svn: 114201
-
- Aug 27, 2010
-
-
Anton Korobeynikov authored
value should be copied to the corresponding shadow reg as well. Patch by Cameron Esfahani! llvm-svn: 112262
-
- Aug 17, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 111291
-
Anton Korobeynikov authored
Patch by Cameron Esfahani! llvm-svn: 111288
-
- Aug 12, 2010
-
-
Bruno Cardoso Lopes authored
- Teach SSEDomainFix to switch between different levels of AVX instructions. Here we guess that AVX will have domain issues, so just implement them for consistency and in the future we remove if it's unnecessary. - Make foldMemoryOperandImpl aware of 256-bit zero vectors folding and support the 128-bit counterparts of AVX too. - Make sure MOV[AU]PS instructions are only selected when SSE1 is enabled, and duplicate the patterns to match AVX. - Add a testcase for a simple 128-bit zero vector creation. llvm-svn: 110946
-
Bruno Cardoso Lopes authored
llvm-svn: 110898
-
rdar://problem/8282498Jakob Stoklund Olesen authored
When a register is defined by a partial load: %reg1234:sub_32 = MOV32mr <fi#-1>; GR64:%reg1234 That load cannot be folded into an instruction using the full 64-bit register. It would become a 64-bit load. This is related to the recent change to have isLoadFromStackSlot return false on a sub-register load. llvm-svn: 110874
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- Jul 29, 2010
-
-
Jakob Stoklund Olesen authored
We do sometimes load from a too small stack slot when dealing with x86 arguments (varargs and smaller-than-32-bit args). It looks like we know what we are doing in those cases, so I am going to remove the assert instead of artifically enlarging stack slot sizes. The assert in storeRegToStackSlot stays in. We don't want to write beyond the bounds of a stack slot. llvm-svn: 109764
-
- Jul 27, 2010
-
-
Jakob Stoklund Olesen authored
subregister operands like this: %reg1040:sub_32bit<def> = MOV32rm <fi#-2>, 1, %reg0, 0, %reg0, %reg1040<imp-def>; mem:LD4[FixedStack-2](align=8) Make them return false when subreg operands are present. VirtRegRewriter is making bad assumptions otherwise. This fixes PR7713. llvm-svn: 109489
-
Jakob Stoklund Olesen authored
with a too-big register class. llvm-svn: 109488
-
- Jul 22, 2010
-
-
Chris Lattner authored
llvm-svn: 109167
-
Chris Lattner authored
rip out the implementation of X86InstrInfo::GetInstSizeInBytes. The code being ripped out just implemented a copy and hacked up version of the (old) instruction encoder, and is buggy and terrible in other ways. Since "GetInstSizeInBytes" is really only there to support the JIT's "NeedsExactSize" hook (which noone is using), just rip out the code. I will rip out the NeedsExactSize hook next. This resolves rdar://7617809 - switch X86InstrInfo::GetInstSizeInBytes to use X86MCCodeEmitter llvm-svn: 109149
-
Rafael Espindola authored
and then forced every register to be a vr128 on win64. llvm-svn: 109060
-
- Jul 21, 2010
-
-
Nate Begeman authored
1) all registers were spilled as xmm, regardless of actual size 2) win64 abi doesn't do the varargs-size-in-%al thing Still to look into: xmm6-15 are marked as clobbered by call instructions on win64 even though they aren't. llvm-svn: 109035
-
- Jul 17, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 108567
-
Bill Wendling authored
thus is a much more meaningful name. llvm-svn: 108563
-
- Jul 16, 2010
-
-
Jakob Stoklund Olesen authored
pass that inserted it. It is no longer necessary to limit the live ranges of FP registers to a single basic block. llvm-svn: 108536
-
- Jul 12, 2010
-
-
Dan Gohman authored
llvm-svn: 108167
-
Rafael Espindola authored
llvm-svn: 108123
-
Rafael Espindola authored
getMinimalPhysRegClass. It was used to produce spills, and it is better to use the most specific class if possible. Update getLoadStoreRegOpcode to handle GR32_AD. llvm-svn: 108115
-
- Jul 11, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 108076
-
- Jul 10, 2010
-
-
Jakob Stoklund Olesen authored
Based on a patch by Rafael Espíndola. Attempt to make the FpSET_ST1 hack more robust, but we are still relying on FpSET_ST0 preceeding it. This is only for supporting really weird x87 inline asm. We support: FpSET_ST0 INLINEASM FpSET_ST0 FpSET_ST1 INLINEASM with and without kills on the arguments. We don't support: FpSET_ST1 FpSET_ST0 INLINEASM nor FpSET_ST1 INLINEASM Just Don't Do It! llvm-svn: 108047
-
Dan Gohman authored
- Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. llvm-svn: 108039
-
- Jul 09, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 108020
-
Jakob Stoklund Olesen authored
llvm-svn: 108012
-
Jakob Stoklund Olesen authored
llvm-svn: 108011
-
Bruno Cardoso Lopes authored
notes: - The instructions are being added with dummy placeholder patterns using some 256 specifiers, this is not meant to work now, but since there are some multiclasses generic enough to accept them, when we go for codegen, the stuff will be already there. - Add VEX encoding bits to support YMM - Add MOVUPS and MOVAPS in the first round - Use "Y" as suffix for those Instructions: MOVUPSYrr, ... - All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX file. llvm-svn: 107996
-
Chris Lattner authored
like all other instructions, even though a segment is not allowed. This resolves a bunch of gross hacks in the encoder and makes LEA more consistent with the rest of the instruction set. No functionality change. llvm-svn: 107934
-
Chris Lattner authored
X86 memory operand. llvm-svn: 107925
-
Jakob Stoklund Olesen authored
llvm-svn: 107920
-
- Jul 08, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 107898
-