- Jul 09, 2010
-
-
Bob Wilson authored
consistency with other instructions that have lists of register operands. llvm-svn: 107944
-
Dan Gohman authored
a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL. llvm-svn: 107943
-
Bruno Cardoso Lopes authored
llvm-svn: 107942
-
Chris Lattner authored
llvm-svn: 107939
-
Bruno Cardoso Lopes authored
llvm-svn: 107937
-
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
-
Chris Lattner authored
in memory operands at the same type as hard coded segments. This fixes problems where we'd emit the segment override after the REX prefix on instructions like: mov %gs:(%rdi), %rax This fixes rdar://8127102. I have several cleanup patches coming next. llvm-svn: 107917
-
Chris Lattner authored
returns the start of the memory operand for an instruction. Introduce a new "X86AddrSegment" enum to reduce # magic numbers referring to X86 memory operand layout. llvm-svn: 107916
-
- Jul 08, 2010
-
-
Kalle Raiskila authored
to a Tablegen implementation. llvm-svn: 107913
-
Evan Cheng authored
llvm-svn: 107904
-
Jakob Stoklund Olesen authored
This pass runs before COPY instructions are passed to copyPhysReg, so we simply translate COPY to the proper pseudo instruction. Note that copyPhysReg does not handle floating point stack copies. Once COPY is used everywhere, this can be cleaned up a bit, and most of the pseudo instructions can be removed. llvm-svn: 107899
-
Jakob Stoklund Olesen authored
llvm-svn: 107898
-
Bob Wilson authored
This pass can go away entirely soon. llvm-svn: 107892
-
Bob Wilson authored
words within the 64-bit D registers. Use VLD1/VST1 with 64-bit elements instead. llvm-svn: 107890
-
Bob Wilson authored
llvm-svn: 107882
-
Jakob Stoklund Olesen authored
EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead. Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg(). The isMoveInstr hook will be removed later. llvm-svn: 107879
-
Jakob Stoklund Olesen authored
Fix X86InstrInfo::convertToThreeAddressWithLEA to generate COPY instead of INSERT_SUBREG. llvm-svn: 107878
-
Benjamin Kramer authored
(X >s -1) ? C1 : C2 and (X <s 0) ? C2 : C1 into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional. This optimization could be extended to take non-const C1 and C2 but we better stay conservative to avoid code size bloat for now. for int sel(int n) { return n >= 0 ? 60 : 100; } we now generate sarl $31, %edi andl $40, %edi leal 60(%rdi), %eax instead of testl %edi, %edi movl $60, %ecx movl $100, %eax cmovnsl %ecx, %eax llvm-svn: 107866
-
Eric Christopher authored
correct the testcase for valid assembly. Needs more tests. llvm-svn: 107860
-
Evan Cheng authored
llvm-svn: 107856
-
Evan Cheng authored
Optimize some vfp comparisons to integer ones. This patch implements the simplest case when the following conditions are met: 1. The arguments are f32. 2. The arguments are loads and they have no uses other than the comparison. 3. The comparison code is EQ or NE. e.g. vldr.32 s0, [r1] vldr.32 s1, [r0] vcmpe.f32 s1, s0 vmrs apsr_nzcv, fpscr beq LBB0_2 => ldr r1, [r1] ldr r0, [r0] cmp r0, r1 beq LBB0_2 More complicated cases will be implemented in subsequent patches. llvm-svn: 107852
-
Dale Johannesen authored
Add explicit testcases for tail calls within the same module. Duplicate some code to humor those who think .w doesn't apply on ARM. Leave this disabled on Thumb1, and add some comments explaining why it's hard and won't gain much. llvm-svn: 107851
-
Dan Gohman authored
Debug info intrinsics win for now. llvm-svn: 107850
-
Jakob Stoklund Olesen authored
llvm-svn: 107832
-
Jim Grosbach authored
llvm-svn: 107831
-
Jim Grosbach authored
address calculation instructions leading up to a jump table when we're trying to convert them into a TB[H] instruction in Thumb2. This realistically shouldn't happen much, if at all, for well formed inputs, but it's more correct to handle it. rdar://7387682 llvm-svn: 107830
-
Chris Lattner authored
llvm-svn: 107826
-
Chris Lattner authored
in the integrated assembler. Still some discussion to be done. llvm-svn: 107825
-
Bruno Cardoso Lopes authored
llvm-svn: 107823
-
Evan Cheng authored
llvm-svn: 107820
-
- Jul 07, 2010
-
-
Devang Patel authored
llvm-svn: 107818
-
Jim Grosbach authored
llvm-svn: 107811
-
Jakob Stoklund Olesen authored
This fixes PR7540. llvm-svn: 107809
-
Dan Gohman authored
a separate DCE pass over MachineInstrs. llvm-svn: 107804
-
Dan Gohman authored
a bunch of stuff, to allow the target-independent calling convention logic to be employed. llvm-svn: 107800
-
Bruno Cardoso Lopes authored
llvm-svn: 107798
-
Dan Gohman authored
around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. llvm-svn: 107791
-
Dan Gohman authored
instance, rather than pointers to all of FunctionLoweringInfo's members. This eliminates an NDEBUG ABI sensitivity. llvm-svn: 107789
-