- Sep 30, 2010
-
-
Jim Grosbach authored
llvm-svn: 115160
-
Jim Grosbach authored
Now that the MC lowering handles the expansion of the pseudos, kill the horrible blobs of text. llvm-svn: 115130
-
Evan Cheng authored
1. Cortex-a9 8-bit and 16-bit loads / stores AGU cycles are 1 cycle longer than 32-bit ones. 2. Cortex-a9 is out-of-order so model all read cycles as cycle 1. 3. Lots of other random fixes for A8 and A9. llvm-svn: 115121
-
- Sep 29, 2010
-
-
Jim Grosbach authored
which require the use of the shifter-operand. This will be used to split the ldr/str instructions such that those versions needing the shifter operand can get a different scheduling itenerary, as in some cases, the use of the shifter can cause different scheduling than the simpler forms. llvm-svn: 115066
-
Evan Cheng authored
llvm-svn: 115010
-
Evan Cheng authored
Assign bitwise binary instructions different itinerary classes from ALU instructions such as add / sub. llvm-svn: 115008
-
- Sep 25, 2010
-
-
Evan Cheng authored
llvm-svn: 114780
-
Evan Cheng authored
Fix scheduling itinerary for pseudo mov immediate instructions which expand into two real instructions. llvm-svn: 114766
-
- Sep 24, 2010
-
-
Owen Anderson authored
reflection, this isn't going to achieve the purpose I intended it for. Back to the drawing board! llvm-svn: 114710
-
Jim Grosbach authored
llvm-svn: 114706
-
Jim Grosbach authored
llvm-svn: 114705
-
Owen Anderson authored
llvm-svn: 114703
-
- Sep 23, 2010
-
-
Jim Grosbach authored
(yet) recognize the 'trap' mnemonic, so we use .short/.long to emit the opcode directly. On Darwin, however, we do want the mnemonic for more readable assembly code and better disassembly. Adjust the .td file to use the 'trap' mnemonic and handle using the binutils workaround in the assembly printer. Also tweak the formatting of the opcode values to make them consistent between the MC printer and the old printer. llvm-svn: 114679
-
- Sep 21, 2010
-
-
Chris Lattner authored
passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471
-
- Sep 10, 2010
-
-
Bill Wendling authored
llvm-svn: 113584
-
- Sep 09, 2010
-
-
Evan Cheng authored
llvm-svn: 113435
-
- Sep 01, 2010
-
-
Chris Lattner authored
the testcases should be merged. llvm-svn: 112711
-
Bill Wendling authored
int x(int t) { if (t & 256) return -26; return 0; } We generate this: tst.w r0, #256 mvn r0, #25 it eq moveq r0, #0 while gcc generates this: ands r0, r0, #256 it ne mvnne r0, #25 bx lr Scandalous really! During ISel time, we can look for this particular pattern. One where we have a "MOVCC" that uses the flag off of a CMPZ that itself is comparing an AND instruction to 0. Something like this (greatly simplified): %r0 = ISD::AND ... ARMISD::CMPZ %r0, 0 @ sets [CPSR] %r0 = ARMISD::MOVCC 0, -26 @ reads [CPSR] All we have to do is convert the "ISD::AND" into an "ARM::ANDS" that sets [CPSR] when it's zero. The zero value will all ready be in the %r0 register and we only need to change it if the AND wasn't zero. Easy! llvm-svn: 112664
-
Bill Wendling authored
llvm-svn: 112654
-
- Aug 30, 2010
-
-
Jim Grosbach authored
Make ARM add rN, sp, #imm instructions rematerializable. That's how the address of locals is calculated, so this should help relieve register pressure a bit. Recalculating the local address is almost always going to be better than spilling. llvm-svn: 112503
-
- Aug 29, 2010
-
-
Bill Wendling authored
llvm-svn: 112421
-
Bill Wendling authored
llvm-svn: 112394
-
- Aug 26, 2010
-
-
Bill Wendling authored
llvm-svn: 112206
-
- Aug 17, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 111277
-
Jim Grosbach authored
llvm-svn: 111266
-
Bob Wilson authored
printing "lsl #0". This fixes the remaining parts of pr7792. Make corresponding changes for encoding/decoding these instructions. llvm-svn: 111251
-
Bob Wilson authored
that the high halfword is zero. The shift need not be exactly 16 bits. llvm-svn: 111196
-
- Aug 16, 2010
-
-
Bob Wilson authored
instructions besides saturate instructions. No functional changes. llvm-svn: 111168
-
Bob Wilson authored
llvm-svn: 111154
-
- Aug 12, 2010
-
-
Johnny Chen authored
the memory barrier variants (other than 'SY' full system domain read and write) are treated as one instruction with option operand. llvm-svn: 110951
-
Johnny Chen authored
Added two test cases to arm-tests.txt. llvm-svn: 110880
-
Bob Wilson authored
instruction opcode. This also fixes part of PR7792. llvm-svn: 110875
-
- Aug 11, 2010
-
-
Evan Cheng authored
llvm-svn: 110787
-
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
-
Bill Wendling authored
llvm-svn: 110761
-
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
-
- Aug 05, 2010
-
-
Bob Wilson authored
llvm-svn: 110363
-
Bob Wilson authored
Partial fix for PR7792. llvm-svn: 110361
-
Bob Wilson authored
Partial fix for PR7792. llvm-svn: 110358
-
- Jul 31, 2010
-
-
Bob Wilson authored
the jtblock_operand print methods. This avoids extra newlines in the disassembler's output. PR7757. llvm-svn: 109948
-