- Sep 06, 2013
-
-
Vladimir Medic authored
llvm-svn: 190144
-
- Sep 05, 2013
-
-
Joey Gouly authored
llvm-svn: 190060
-
Richard Barton authored
These were pretty straightforward instructions, with some assembly support required for HLT. The ARM assembler is keen to split the instruction mnemonic into a (non-existent) 'H' instruction with the LT condition code. An exception for HLT is needed. HLT follows the same rules as BKPT when in IT blocks, so the special BKPT hadling code has been adapted to handle HLT also. Regression tests added including diagnostic tests for out of range immediates and illegal condition codes, as well as negative tests for pre-ARMv8. llvm-svn: 190053
-
Richard Sandiford authored
For now these are just used to handle scalar ANDs, ORs and XORs in which all operands are memory. llvm-svn: 190041
-
- Sep 04, 2013
-
-
Hao Liu authored
sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshrun,sqshrn,uqshr,sqrshrn,uqrshrn,sshll,ushll and 4 convert instructions: scvtf,ucvtf,fcvtzs,fcvtzu llvm-svn: 189925
-
- Aug 30, 2013
-
-
Richard Mitton authored
Fixed a bug where diassembling an instruction that had a prefix would cause LLVM to identify a 1-byte instruction, but then upon querying it for that 1-byte instruction would cause an undefined opcode. llvm-svn: 189698
-
- Aug 28, 2013
-
-
Richard Sandiford authored
For now just handles simple comparisons of an ANDed value with zero. The CC value provides enough information to do any comparison for a 2-bit mask, and some nonzero comparisons with more populated masks, but that's all future work. llvm-svn: 189469
-
Akira Hatanaka authored
Also, fix predicates. llvm-svn: 189432
-
- Aug 27, 2013
-
-
Joey Gouly authored
llvm-svn: 189388
-
- Aug 26, 2013
-
-
Craig Topper authored
First round of fixes for the x86 fixes for the x86 move accumulator from/to memory offset instructions. -Assembly parser now properly check the size of the memory operation specified in intel syntax. So 'mov word ptr [5], al' is no longer accepted. -x86-32 disassembly of these instructions no longer sign extends the 32-bit address immediate based on size. -Intel syntax printing prints the ptr size and places brackets around the address immediate. Known remaining issues with these instructions: -Segment override prefix is not supported. PR16962 and PR16961. -Immediate size should be changed by address size prefix. llvm-svn: 189201
-
- Aug 23, 2013
-
-
Richard Sandiford authored
Just the instructions and intrinsics for now. llvm-svn: 189100
-
- Aug 21, 2013
-
-
Richard Sandiford authored
These are extensions of the existing FI[EDX]BR instructions, but use a spare bit to suppress inexact conditions. llvm-svn: 188894
-
- Aug 19, 2013
-
-
Richard Sandiford authored
For now this matches the equivalent of (neg (abs ...)), which did hit a few times in projects/test-suite. We should probably also match cases where absolute-like selects are used with reversed arguments. llvm-svn: 188671
-
Richard Sandiford authored
llvm-svn: 188670
-
- Aug 16, 2013
-
-
Richard Sandiford authored
It would also make sense to use it for memchr; I'm working on that now. llvm-svn: 188547
-
Richard Sandiford authored
llvm-svn: 188546
-
Richard Sandiford authored
llvm-svn: 188544
-
Daniel Dunbar authored
- Instead of setting the suffixes in a bunch of places, just set one master list in the top-level config. We now only modify the suffix list in a few suites that have one particular unique suffix (.ml, .mc, .yaml, .td, .py). - Aside from removing the need for a bunch of lit.local.cfg files, this enables 4 tests that were inadvertently being skipped (one in Transforms/BranchFolding, a .s file each in DebugInfo/AArch64 and CodeGen/PowerPC, and one in CodeGen/SI which is now failing and has been XFAILED). - This commit also fixes a bunch of config files to use config.root instead of older copy-pasted code. llvm-svn: 188513
-
- Aug 15, 2013
-
-
Hao Liu authored
llvm-svn: 188451
-
- Aug 12, 2013
-
-
Richard Sandiford authored
llvm-svn: 188162
-
Richard Sandiford authored
llvm-svn: 188161
-
- Aug 09, 2013
-
-
Mihai Popa authored
In Thumb1, only one variant is supported: CPS{effect} {flags} Thumb2 supports three: CPS{effect}.W {flags} CPS{effect} {flags} {mode} CPS {mode} Canonically, .W should be used only when ambiguity is present between encodings of different width. The wide suffix is still accepted for the latter two forms via aliases. llvm-svn: 188071
-
- Aug 07, 2013
-
-
Richard Sandiford authored
These instructions can also be used as comparisons with zero. llvm-svn: 187882
-
- Aug 05, 2013
-
-
Richard Sandiford authored
llvm-svn: 187721
-
Richard Sandiford authored
Just the definitions and MC support. The next patch uses them for codegen. llvm-svn: 187719
-
- Aug 01, 2013
-
-
Tim Northover authored
Patch by Ana Pazos. - Completed implementation of instruction formats: AdvSIMD three same AdvSIMD modified immediate AdvSIMD scalar pairwise - Completed implementation of instruction classes (some of the instructions in these classes belong to yet unfinished instruction formats): Vector Arithmetic Vector Immediate Vector Pairwise Arithmetic - Initial implementation of instruction formats: AdvSIMD scalar two-reg misc AdvSIMD scalar three same - Intial implementation of instruction class: Scalar Arithmetic - Initial clang changes to support arm v8 intrinsics. Note: no clang changes for scalar intrinsics function name mangling yet. - Comprehensive test cases for added instructions To verify auto codegen, encoding, decoding, diagnosis, intrinsics. llvm-svn: 187567
-
- Jul 31, 2013
-
-
Kevin Enderby authored
While the .td entry is nice and all, it takes a pretty gross hack in ARMAsmParser::ParseInstruction() because of handling of other "subs" instructions to get it to match. Ran it by Jim Grosbach and he said it was about what he expected to make this work given the existing code. rdar://14214063 llvm-svn: 187530
-
Richard Sandiford authored
The next patch will make use of RISBLG for codegen. llvm-svn: 187490
-
Craig Topper authored
Changed register names (and pointer keywords) to be lower case when using Intel X86 assembler syntax. Patch by Richard Mitton. llvm-svn: 187476
-
- Jul 26, 2013
-
-
Akira Hatanaka authored
register operands. llvm-svn: 187242
-
Akira Hatanaka authored
operands. llvm-svn: 187238
-
Akira Hatanaka authored
instructions "beqz", "bnez" and "move", when possible. beq $2, $zero, $L1 => beqz $2, $L1 bne $2, $zero, $L1 => bnez $2, $L1 or $2, $3, $zero => move $2, $3 llvm-svn: 187229
-
- Jul 25, 2013
-
-
Rafael Espindola authored
Approval in here http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064169.html llvm-svn: 187145
-
Richard Sandiford authored
llvm-svn: 187113
-
Richard Sandiford authored
As with the stores, these instructions can trap when the condition is false, so they are only used for things like (cond ? x : *ptr). llvm-svn: 187112
-
Richard Sandiford authored
These instructions are allowed to trap even if the condition is false, so for now they are only used for "*ptr = (cond ? x : *ptr)"-style constructs. llvm-svn: 187111
-
- Jul 23, 2013
-
-
Rafael Espindola authored
llvm-svn: 186939
-
Craig Topper authored
llvm-svn: 186924
-
- Jul 22, 2013
-
-
Kevin Enderby authored
absolute address encoded in the instruction. rdar://8612627 and rdar://14299221 llvm-svn: 186878
-
- Jul 19, 2013
-
-
Richard Sandiford authored
The insn definitions themselves crept into r186689, sorry. This should be the last of the distinct-ops instructions. llvm-svn: 186690
-