- Sep 14, 2013
-
-
Zoran Jovanovic authored
llvm-svn: 190746
-
Zoran Jovanovic authored
llvm-svn: 190745
-
Zoran Jovanovic authored
llvm-svn: 190744
-
- Sep 13, 2013
-
-
Amaury de la Vieuville authored
Patch by Bradley Smith llvm-svn: 190694
-
Joey Gouly authored
to be more consistent. llvm-svn: 190692
-
Tim Northover authored
Previously we modelled VPR128 and VPR64 as essentially identical register-classes containing V0-V31 (which had Q0-Q31 as "sub_alias" sub-registers). This model is starting to cause significant problems for code generation, particularly writing EXTRACT/INSERT_SUBREG patterns for converting between the two. The change here switches to classifying VPR64 & VPR128 as RegisterOperands, which are essentially aliases for RegisterClasses with different parsing and printing behaviour. This fits almost exactly with their real status (VPR128 == FPR128 printed strangely, VPR64 == FPR64 printed strangely). llvm-svn: 190665
-
- Sep 12, 2013
-
-
Roman Divacky authored
FreeBSD kernel. llvm-svn: 190618
-
Ben Langmuir authored
Add basic assembly/disassembly support for the first Intel SHA instruction 'sha1rnds4'. Also includes feature flag, and test cases. Support for the remaining instructions will follow in a separate patch. llvm-svn: 190611
-
Hal Finkel authored
Use the new instruction deprecation feature to mark mftb (now replaced with mfspr) and dst (along with the other Altivec cache control instructions) as deprecated when targeting cores supporting at least ISA v2.03. llvm-svn: 190605
-
Joey Gouly authored
got lost during my iterations of review. Thanks to Hal for spotting it! llvm-svn: 190604
-
Joey Gouly authored
The 'Deprecated' class allows you to specify a SubtargetFeature that the instruction is deprecated on. The 'ComplexDeprecationPredicate' class allows you to define a custom predicate that is called to check for deprecation. For example: ComplexDeprecationPredicate<"MCR"> would mean you would have to define the following function: bool getMCRDeprecationInfo(MCInst &MI, MCSubtargetInfo &STI, std::string &Info) Which returns 'false' for not deprecated, and 'true' for deprecated and store the warning message in 'Info'. The MCTargetAsmParser constructor was chaned to take an extra argument of the MCInstrInfo class, so out-of-tree targets will need to be changed. llvm-svn: 190598
-
Elena Demikhovsky authored
Added parsing of mask register and "zeroing" semantic, like {%k1} {z}. llvm-svn: 190595
-
- Sep 10, 2013
-
-
Richard Sandiford authored
The main complication here is that TM and TMY (the memory forms) set CC differently from the register forms. When the tested bits contain some 0s and some 1s, the register forms set CC to 1 or 2 based on the value the uppermost bit. The memory forms instead set CC to 1 regardless of the uppermost bit. Until now, I've tried to make it so that a branch never tests for an impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the result will only test for 0 or 1. Originally I'd tried to do the same thing for TM and TMY by using custom matching code in ISelDAGToDAG. That ended up being very ugly though, and would have meant duplicating some of the chain checks that the common isel code does. I've therefore gone for the simpler alternative of adding an extra operand to the TM DAG opcode to say whether a memory form would be OK. This means that the inverse of a "TM;JE" is "TM;JNE" rather than the more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE". I suppose that's arguably less confusing though... llvm-svn: 190400
-
Vladimir Medic authored
Add test cases for Mips mthc1/mfhc1 instructions. Add check for odd value of register when PFU is 32 bit. llvm-svn: 190397
-
- Sep 09, 2013
-
-
Jiangning Liu authored
SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL llvm-svn: 190288
-
- Sep 07, 2013
-
-
Akira Hatanaka authored
llvm-svn: 190232
-
Akira Hatanaka authored
llvm-svn: 190219
-
- Sep 06, 2013
-
-
Vladimir Medic authored
This patch adds support for microMIPS Multiply and Add/Sub instructions. Test cases are included in patch. llvm-svn: 190154
-
Vladimir Medic authored
This patch adds support for microMIPS Move to/from HI/LO instructions. Test cases are included in patch. llvm-svn: 190152
-
Vladimir Medic authored
This patch adds support for microMIPS Move Conditional instructions. Test cases are included in patch. llvm-svn: 190148
-
Vladimir Medic authored
llvm-svn: 190144
-
- Sep 05, 2013
-
-
Kevin Enderby authored
expression uses an assembler temporary symbol from an assignment. In this case the symbol does not have a fragment so the use of getFragment() would be NULL and caused a crash. In the case of an assembler temporary symbol we want to use the AliasedSymbol (if any) which will create a local relocation entry, but if it is not an assembler temporary symbol then let it use that symbol with an external relocation entry. rdar://9356266 llvm-svn: 190096
-
Yunzhong Gao authored
allow escaped octal character sequences. The patch was discussed in Phabricator. See: http://llvm-reviews.chandlerc.com/D1289 llvm-svn: 190089
-
Joey Gouly authored
llvm-svn: 190060
-
Joey Gouly authored
This removes the custom ISD Node: MEMBARRIER and replaces it with an intrinsic. llvm-svn: 190055
-
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 29, 2013
-
-
Kevin Enderby authored
32-bit absolute addressing in instructions likei this: mov $_f, %rsi which is not supported in 64-bit mode. rdar://8827134 llvm-svn: 189543
-
- Aug 28, 2013
-
-
Kevin Enderby authored
with a debug build) with this buggy .indirect_symbol directive usage: % cat test.s x: .indirect_symbol _y The assertion is because it is trying to get the symbol index for the symbol _y when it is writing out the indirect symbol table. This line of code in MachObjectWriter::WriteObject() : Write32(Asm.getSymbolData(*it->Symbol).getIndex()); And while there is a symbol _y it does not have any getSymbolData set which is only done in MachObjectWriter::BindIndirectSymbols() for pointer sections or stub sections. I added a check and an error in there to catch this in case something slips through. But to get a better error the parser should detect when a .indirect_symbol directive is used and it is not in a pointer section or stub section. To make that work I moved the handling of the indirect symbol out of the target independent AsmParser code into the DarwinAsmParser code that can check for the proper Mach-O section types. rdar://14825505 llvm-svn: 189497
-
Joey Gouly authored
Fix a few things in one swoop. # Add some negative tests. # Fix some formatting issues. # Add some missing IsThumb / ARMv8 # Fix some outs / ins mistakes. llvm-svn: 189490
-
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
-
-
David Majnemer authored
Summary: MASM let's you do stuff like 'MOV FS:20, EAX' and 'MOV EAX, FS:20' Reviewers: craig.topper, rnk Reviewed By: rnk CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1470 llvm-svn: 189407
-
Joerg Sonnenberger authored
first. Use this to turn the PPC modifiers into PPC specific expressions, allowing them to work on constants. llvm-svn: 189400
-
Joey Gouly authored
llvm-svn: 189388
-
Joey Gouly authored
Fix two issues I found while writing these tests. llvm-svn: 189341
-
Kai Nacke authored
The code offset for unwind code SET_FPREG is wrong because it is set to constant 0. The fix is to do the same as for the other unwind codes: emit a label and later the absolute difference between the label and the begin of the prologue. Also enables the failing test case MC/COFF/seh.s Reviewed by Jim Grosbach, Charles Davis and Nico Rieck. llvm-svn: 189309
-
- Aug 26, 2013
-
-
Vladimir Medic authored
llvm-svn: 189213
-