- Apr 19, 2013
-
-
Hal Finkel authored
Many PPC instructions have a so-called 'record form' which stores to a specific condition register the result of comparing the result of the instruction with zero (always as a signed comparison). For integer operations on PPC64, this is always a 64-bit comparison. This implementation is derived from the implementation in the ARM backend; there are some differences because PPC condition registers are allocatable virtual registers (although the record forms always use a specific one), and we look for a matching subtraction instruction after the compare (but before the first use) in addition to before it. llvm-svn: 179802
-
- Apr 18, 2013
-
-
Benjamin Kramer authored
This pattern started popping up in vectorized min/max reductions. llvm-svn: 179797
-
Derek Schuff authored
In X86FastISel::X86SelectStore(), improperly aligned stores are rejected and handled by the DAG-based ISel. However, X86FastISel::X86SelectLoad() makes no such requirement. There doesn't appear to be an x86 architectural correctness issue with allowing potentially unaligned store instructions. This patch removes this restriction. Patch by Jim Stichnot. llvm-svn: 179774
-
Chad Rosier authored
llvm-svn: 179765
-
Chad Rosier authored
llvm-svn: 179764
-
Hao Liu authored
llvm-svn: 179751
-
Akira Hatanaka authored
llvm-svn: 179741
-
Akira Hatanaka authored
llvm-svn: 179739
-
Jack Carter authored
This patch should not have any functional changes. llvm-svn: 179737
-
- Apr 17, 2013
-
-
Peter Collingbourne authored
Differential Revision: http://llvm-reviews.chandlerc.com/D598 llvm-svn: 179725
-
Chad Rosier authored
llvm-svn: 179724
-
Chad Rosier authored
unable to handle cases such as __asm mov eax, 8*-8. This patch also attempts to simplify the state machine. Further, the error reporting has been improved. Test cases included, but more will be added to the clang side shortly. rdar://13668445 llvm-svn: 179719
-
Eli Bendersky authored
for the sdiv/srem/udiv/urem bitcode instructions. This is done for the i8, i16, and i32 types, as well as i64 for the x86_64 target. Patch by Jim Stichnoth llvm-svn: 179715
-
Arnold Schwaighofer authored
getSimpleVT can only handle simple value types. radar://13676022 llvm-svn: 179714
-
Quentin Colombet authored
The reference manual defines only 5 permitted values for the immediate field of the "hint" instruction: 1. nop (imm == 0) 2. yield (imm == 1) 3. wfe (imm == 2) 4. wfi (imm == 3) 5. sev (imm == 4) Therefore, restrict the permitted values for the "hint" instruction to 0 through 4. Patch by Mihail Popa <Mihail.Popa@arm.com> llvm-svn: 179707
-
Ulrich Weigand authored
PowerPC: Mark some more patterns as isCodeGenOnly. A couple of recently introduced conditional branch patterns also need to be marked as isCodeGenOnly since they cannot be handled by the asm parser. No change in generated code. llvm-svn: 179690
-
Vincent Lejeune authored
llvm-svn: 179686
-
Vincent Lejeune authored
llvm-svn: 179685
-
Vincent Lejeune authored
llvm-svn: 179684
-
Evgeniy Stepanov authored
Broken in r179657. llvm-svn: 179669
-
Jack Carter authored
This patch allows the Mips assembler to parse and emit nested expressions as instruction operands. It also extends the expansion of memory instructions when an offset is given as an expression. Contributer: Vladimir Medic llvm-svn: 179657
-
Chad Rosier authored
cases to be submitted on clang side shortly. rdar://13663768 and PR15760 llvm-svn: 179655
-
Tom Stellard authored
llvm-svn: 179648
-
- Apr 16, 2013
-
-
Chad Rosier authored
llvm-svn: 179611
-
Chad Rosier authored
llvm-svn: 179610
-
Chad Rosier authored
llvm-svn: 179607
-
Logan Chien authored
llvm-svn: 179593
-
Logan Chien authored
llvm-svn: 179591
-
Jakob Stoklund Olesen authored
llvm-svn: 179582
-
Jim Grosbach authored
These are aliases for VACGT and VACGE, respectively, with the source operands reversed. rdar://13638090 llvm-svn: 179575
-
Jack Carter authored
This patch allows the assembler to recognize $fcc0 as a valid register for conditional move instructions. Corresponding test cases have been added. Contributer: Vladimir Medic llvm-svn: 179567
-
- Apr 15, 2013
-
-
Tom Stellard authored
Instead of emitting config values in a predefined order, the code emitter will now emit a 32-bit register index followed by the 32-bit config value. llvm-svn: 179546
-
Tom Stellard authored
llvm-svn: 179545
-
Tom Stellard authored
llvm-svn: 179544
-
Hal Finkel authored
Now that the CR spilling issues have been resolved, we can remove the unmodeled-side-effect attributes from the comparison instructions (and also mark them as isCompare). By allowing these, by default, to have unmodeled side effects, we were hiding problems with CR spilling; but everything seems much happier now. llvm-svn: 179502
-
Hal Finkel authored
This fixes an ABI bug for non-Darwin PPC64. For the callee-saved condition registers, the spill location is specified relative to the stack pointer (SP + 8). However, this is not relative to the SP after the new stack frame is established, but instead relative to the caller's stack pointer (it is stored into the linkage area of the parent's stack frame). So, like with the link register, we don't directly spill the CRs with other callee-saved registers, but just mark them to be spilled during prologue generation. In practice, this reverts r179457 for PPC64 (but leaves it in place for PPC32). llvm-svn: 179500
-
- Apr 14, 2013
-
-
Jakob Stoklund Olesen authored
Test case by llvm-stress. llvm-svn: 179477
-
Jakob Stoklund Olesen authored
For when 16 TB just isn't enough. llvm-svn: 179474
-
Jakob Stoklund Olesen authored
This is the default model for non-PIC 64-bit code. It supports text+data+bss linked anywhere in the low 16 TB of the address space. llvm-svn: 179473
-
Jakob Stoklund Olesen authored
64-bit code models need multiple relocations that can't be inferred from the opcode like they can in 32-bit code. llvm-svn: 179472
-