- Aug 12, 2010
-
-
Devang Patel authored
Tested by scope.exp in gdb testsuite. llvm-svn: 110876
-
Bob Wilson authored
instruction opcode. This also fixes part of PR7792. llvm-svn: 110875
-
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
-
Owen Anderson authored
llvm-svn: 110863
-
Nick Lewycky authored
- remove ashr which never worked. - fix lshr and shl and add tests. - remove dead function "intersect1Wrapped". - add a new sub method to subtract ranges, with test. llvm-svn: 110861
-
- Aug 11, 2010
-
-
Dan Gohman authored
and remove casts from all its callers. llvm-svn: 110848
-
Dan Gohman authored
llvm-svn: 110847
-
Dan Gohman authored
llvm-svn: 110843
-
Dan Gohman authored
llvm-svn: 110842
-
Dan Gohman authored
that many of these things, so the memory savings isn't significant, and there are now situations where there can be alignments greater than 128. llvm-svn: 110836
-
Dan Gohman authored
avoids trouble if the return type of TD->getPointerSize() is changed to something which doesn't promote to a signed type, and is simpler anyway. Also, use getCopyFromReg instead of getRegister to read a physical register's value. llvm-svn: 110835
-
Jakob Stoklund Olesen authored
llvm-svn: 110826
-
Jim Grosbach authored
llvm-svn: 110810
-
Bill Wendling authored
float t1(int argc) { return (argc == 1123) ? 1.234f : 2.38213f; } We would generate truly awful code on ARM (those with a weak stomach should look away): _t1: movw r1, #1123 movs r2, #1 movs r3, #0 cmp r0, r1 mov.w r0, #0 it eq moveq r0, r2 movs r1, #4 cmp r0, #0 it ne movne r3, r1 adr r0, #LCPI1_0 ldr r0, [r0, r3] bx lr The problem was that legalization was creating a cascade of SELECT_CC nodes, for for the comparison of "argc == 1123" which was fed into a SELECT node for the ?: statement which was itself converted to a SELECT_CC node. This is because the ARM back-end doesn't have custom lowering for SELECT nodes, so it used the default "Expand". I added a fairly simple "LowerSELECT" to the ARM back-end. It takes care of this testcase, but can obviously be expanded to include more cases. Now we generate this, which looks optimal to me: _t1: movw r1, #1123 movs r2, #0 cmp r0, r1 adr r0, #LCPI0_0 it eq moveq r2, #4 ldr r0, [r0, r2] bx lr .align 2 LCPI0_0: .long 1075344593 @ float 2.382130e+00 .long 1067316150 @ float 1.234000e+00 llvm-svn: 110799
-
Evan Cheng authored
Report error if codegen tries to instantiate a ARM target when the cpu does support it. e.g. cortex-m* processors. llvm-svn: 110798
-
Evan Cheng authored
llvm-svn: 110797
-
Evan Cheng authored
llvm-svn: 110796
-
Evan Cheng authored
llvm-svn: 110795
-
Daniel Dunbar authored
MC/ARM: Add basic support for handling predication by parsing it out of the mnemonic into a separate operand form. llvm-svn: 110794
-
Daniel Dunbar authored
llvm-svn: 110793
-
Daniel Dunbar authored
llvm-svn: 110792
-
Daniel Dunbar authored
llvm-mc: Add -show-inst-operands, for dumping the parsed instruction representation before matching. llvm-svn: 110791
-
Daniel Dunbar authored
llvm-svn: 110790
-
Daniel Dunbar authored
llvm-svn: 110788
-
Evan Cheng authored
llvm-svn: 110787
-
Evan Cheng authored
instructions: dmb, dsb, isb, msr, and mrs. llvm-svn: 110786
-
Evan Cheng authored
memory and synchronization barrier dmb and dsb instructions. - Change instruction names to something more sensible (matching name of actual instructions). - Added tests for memory barrier codegen. llvm-svn: 110785
-
Daniel Dunbar authored
llvm-svn: 110783
-
Daniel Dunbar authored
llvm-svn: 110782
-
Daniel Dunbar authored
for some reason they have a very odd MCInst form where the operands overlap, but I haven't dug in to find out why yet. llvm-svn: 110781
-
Daniel Dunbar authored
llvm-svn: 110780
-
Owen Anderson authored
llvm-svn: 110778
-
Bill Wendling authored
llvm-svn: 110762
-
Bill Wendling authored
llvm-svn: 110761
-
Dan Gohman authored
make any assumptions about when the two conditions will agree on when to permit the loop to exit. This fixes PR7845. llvm-svn: 110758
-
Bob Wilson authored
(I discovered 2 more copies of the ARM instruction format list, bringing the total to 4!! Two of them were already out of sync. I haven't yet gotten into the disassembler enough to know the best way to fix this, but something needs to be done.) Add support for encoding these instructions. llvm-svn: 110754
-
Dan Gohman authored
llvm-svn: 110750
-
Evan Cheng authored
llvm-svn: 110745
-
Bruno Cardoso Lopes authored
Apply the same approach of SSE4.1 ptest intrinsics but create a new x86 node "testp" since AVX introduces vtest{ps}{pd} instructions which set ZF and CF depending on sign bit AND and ANDN of packed floating-point sources. This is slightly different from what the "ptest" does. Tests comming with the other 256 intrinsics tests. llvm-svn: 110744
-
Owen Anderson authored
create constraints from comparisons other than eq/neq. llvm-svn: 110742
-