- Nov 11, 2010
-
-
Jim Grosbach authored
llvm-svn: 118736
-
Jim Grosbach authored
llvm-svn: 118732
-
Jim Grosbach authored
llvm-svn: 118730
-
- Nov 09, 2010
-
-
Jim Grosbach authored
llvm-svn: 118600
-
Jim Grosbach authored
llvm-svn: 118513
-
Bill Wendling authored
llvm-svn: 118462
-
Bill Wendling authored
llvm-svn: 118457
-
- Nov 08, 2010
-
-
Bill Wendling authored
an initial implementation and may change once reglists are fully fleshed out. llvm-svn: 118390
-
- Nov 04, 2010
-
-
Evan Cheng authored
Fix @llvm.prefetch isel. Selecting between pld / pldw using the first immediate rw. There is currently no intrinsic that matches to pli. llvm-svn: 118237
-
- Nov 03, 2010
-
-
Evan Cheng authored
Fix preload instruction isel. Only v7 supports pli, and only v7 with mp extension supports pldw. Add subtarget attribute to denote mp extension support and legalize illegal ones to nothing. llvm-svn: 118160
-
-
Bill Wendling authored
vldr.64 d1, [r0, #-32] The problem was with how the addressing mode 5 encodes the offsets. This change makes sure that the way offsets are handled in addressing mode 5 is consistent throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue" method into an "Imm12" and "addressing mode 5" version. But not to worry! The majority of the duplicated code has been unified. llvm-svn: 118144
-
Jim Grosbach authored
parts. Represent the operation mode as an optional operand instead. rdar://8614429 llvm-svn: 118137
-
Chris Lattner authored
ins/outs list that isn't specified by their asmstring. Previously the asmmatcher would just force a 0 register into it, which clearly isn't right. Mark a bunch of ARM instructions that use this as isCodeGenOnly. Some of them are clearly pseudo instructions (like t2TBB) others use a weird hasExtraSrcRegAllocReq thing that will either need to be removed or the asmmatcher will need to be taught about it (someday). llvm-svn: 118119
-
- Nov 02, 2010
-
-
Bill Wendling authored
with immediates up to 16-bits in size. The same logic is applied to other LDR encodings, e.g. VLDR, but which use a different immediate bit width (8-bits in VLDR's case). Removing the "12" allows it to be more generic. llvm-svn: 118094
-
Owen Anderson authored
llvm-svn: 118093
-
Jim Grosbach authored
llvm-svn: 118029
-
Owen Anderson authored
llvm-svn: 117997
-
Owen Anderson authored
llvm-svn: 117984
-
Bob Wilson authored
This is another part of the fix for Radar 8599955. llvm-svn: 117976
-
- Nov 01, 2010
-
-
Jim Grosbach authored
llvm-svn: 117929
-
- Oct 31, 2010
-
-
Chris Lattner authored
got a dulicated line). llvm-svn: 117860
-
Chris Lattner authored
llvm-svn: 117859
-
Chris Lattner authored
Instead of silently ignoring these instructions, emit a hard error and force the target author to either refactor the target or mark the instruction 'isCodeGenOnly'. Mark a few instructions in ARM and MBlaze as isCodeGenOnly the are doing this. llvm-svn: 117858
-
- Oct 30, 2010
-
-
Bob Wilson authored
There were a number of issues to fix up here: * The "device" argument of the llvm.memory.barrier intrinsic should be used to distinguish the "Full System" domain from the "Inner Shareable" domain. It has nothing to do with using DMB vs. DSB instructions. * The compiler should never need to emit DSB instructions. Remove the ARMISD::SYNCBARRIER node and also remove the instruction patterns for DSB. * Merge the separate DMB/DSB instructions for options only used for the disassembler with the default DMB/DSB instructions. Add the default "full system" option ARM_MB::SY to the ARM_MB::MemBOpt enum. * Add a separate ARMISD::MEMBARRIER_MCR node for subtargets that implement a data memory barrier using the MCR instruction. * Fix up encodings for these instructions (except MCR). I also updated the tests and added a few new ones to check for DMB options that were not currently being exercised. llvm-svn: 117756
-
Jim Grosbach authored
llvm-svn: 117753
-
Jim Grosbach authored
encoder functions. llvm-svn: 117738
-
- Oct 29, 2010
-
-
Jim Grosbach authored
the ARMExpandPseudos pass rather than during the asm lowering. llvm-svn: 117714
-
Jim Grosbach authored
llvm-svn: 117703
-
Jim Grosbach authored
llvm-svn: 117702
-
Jim Grosbach authored
llvm-svn: 117695
-
Jim Grosbach authored
llvm-svn: 117687
-
Chris Lattner authored
vldr.64 to work. I have no idea if this is fully right, but it is in the right direction. llvm-svn: 117626
-
- Oct 28, 2010
-
-
Jim Grosbach authored
llvm-svn: 117571
-
Evan Cheng authored
llvm-svn: 117531
-
Evan Cheng authored
llvm-svn: 117520
-
Evan Cheng authored
- For now, loads of [r, r] addressing mode is the same as the [r, r lsl/lsr/asr #] variants. ARMBaseInstrInfo::getOperandLatency() should identify the former case and reduce the output latency by 1. - Also identify [r, r << 2] case. This special form of shifter addressing mode is "free". llvm-svn: 117519
-
Evan Cheng authored
complex load / store addressing mode) when they have higher cost and when they have more than one use. llvm-svn: 117509
-
Jim Grosbach authored
the LDR instructions have. This makes the literal/register forms of the instructions explicit and allows us to assign scheduling itineraries appropriately. rdar://8477752 llvm-svn: 117505
-
Owen Anderson authored
for specifying fractional bits for fixed point conversions. llvm-svn: 117501
-