- Jun 17, 2015
-
-
Toma Tabacu authored
Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10497 llvm-svn: 239899
-
Toma Tabacu authored
Summary: Previously, MCSymbolRefExpr::create() was called with a StringRef of the symbol name, which it would then search for in the Symbols StringMap (from MCContext). However, relative labels (which are temporary symbols) are apparently not stored in the Symbols StringMap, so we end up creating a new {$,.L}tmp symbol ({$,.L}tmp00, {$,.L}tmp10 etc.) each time we create an MCSymbolRefExpr by passing in the symbol name as a StringRef. Fortunately, there is a version of MCSymbolRefExpr::create() which takes an MCSymbol* and we already have an MCSymbol* at that point, so we can just pass that in instead of the StringRef. I also removed the local StringRef calls to MCSymbolRefExpr::create() from expandMemInst(), as those cases can be handled by evaluateRelocExpr() anyway. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9938 llvm-svn: 239897
-
- Jun 16, 2015
-
-
Kit Barton authored
The mftb instruction was incorrectly marked as deprecated in the PPC Backend. Instead, it should not be treated as deprecated, but rather be implemented using the mfspr instruction. A similar patch was put into GCC last year. Details can be found at: https://sourceware.org/ml/binutils/2014-11/msg00383.html. This change will replace instances of the mftb instruction with the mfspr instruction for all CPUs except 601 and pwr3. This will also be the default behaviour. Additional details can be found in: https://llvm.org/bugs/show_bug.cgi?id=23680 Phabricator review: http://reviews.llvm.org/D10419 llvm-svn: 239827
-
Daniel Sanders authored
Summary: Relocs that can be converted from absolute to PC-relative now do so if IsPCRel is true. Relocs that require PC-relative now call llvm_unreachable() if IsPCRel is false and similarly those that require absolute assert that IsPCRel is false. Note that while it looks like some relocs (e.g. R_MIPS_26) can be converted into the MIPS32r6/MIPS64r6 relocs (R_MIPS_PC*_S2), it isn't actually valid to do so. Placeholders have been left in the testcase for unsupported relocs and relocs that cannot be generated at the moment. Reviewers: vkalintiris Reviewed By: vkalintiris Subscribers: llvm-commits, rafael Differential Revision: http://reviews.llvm.org/D10184 llvm-svn: 239817
-
Daniel Sanders authored
Summary: GetTarget() may modify TripleName without also updating TheTriple. This can lead to situations where the MCObjectStreamer has a different triple to the rest of LLVM. This inconsistency caused sparc-little-endian.s to pass on Windows because most of LLVM had sparcel-pc-win32 while MCObjectStreamer had "". I believe the same kind of thing was also true of Darwin. Reviewers: rengolin Reviewed By: rengolin Subscribers: llvm-commits, rengolin, rafael Differential Revision: http://reviews.llvm.org/D10450 llvm-svn: 239808
-
- Jun 14, 2015
-
-
Michael Kuperstein authored
Differential Revision: http://reviews.llvm.org/D10385 Patch by marina.yatsina@intel.com llvm-svn: 239695
-
Igor Breger authored
Added intrinsics for cvtsi2ss/d instructions. Added tests for intrinsics and encoding. Differential Revision: http://reviews.llvm.org/D10430 llvm-svn: 239694
-
- Jun 13, 2015
-
-
Tom Stellard authored
llvm-svn: 239657
-
- Jun 12, 2015
-
-
Tom Stellard authored
- Add glc, slc, and tfe operands to flat instructions - Add missing flat instructions - Fix the encoding of flat_load_dwordx3 and flat_store_dwordx3. llvm-svn: 239637
-
- Jun 11, 2015
-
-
Toma Tabacu authored
Apparently, Arcanist didn't include some of my local changes in my previous commit attempt. llvm-svn: 239523
-
Zoran Jovanovic authored
http://reviews.llvm.org/D10091 llvm-svn: 239522
-
Zoran Jovanovic authored
http://reviews.llvm.org/D10312 llvm-svn: 239520
-
Zoran Jovanovic authored
llvm-svn: 239519
-
Nemanja Ivanovic authored
This patch corresponds to review: http://reviews.llvm.org/D10096 This is the back end portion of the patch related to D10095. The patch adds the instructions and back end intrinsics for: vbpermq vgbbd llvm-svn: 239505
-
- Jun 10, 2015
-
-
Colin LeMahieu authored
[Hexagon] Adding decoders for signed operands and ensuring all signed operand types disassemble correctly. llvm-svn: 239477
-
- Jun 09, 2015
-
-
Toma Tabacu authored
Specified the llvm namespace for the 2 calls to make_unique() which caused compilation errors in Visual Studio 2013. llvm-svn: 239405
-
Elena Demikhovsky authored
Added encoding tests. llvm-svn: 239403
-
Toma Tabacu authored
It was breaking buildbots. llvm-svn: 239397
-
Toma Tabacu authored
Summary: For some branches, GAS accepts an immediate instead of the 2nd register operand. We only implement this for BNE and BEQ for now. Other branch instructions can be added later, if needed. Reviewers: dsanders Reviewed By: dsanders Subscribers: seanbruno, emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D9666 llvm-svn: 239396
-
- Jun 08, 2015
-
-
Ranjeet Singh authored
Differential Revision: http://reviews.llvm.org/D10320 llvm-svn: 239353
-
Rafael Espindola authored
It was calling ChangeSection with the wrong current section, eventually leading to a crash. llvm-svn: 239335
-
Javed Absar authored
This patch adds support for system register MMFR4_EL1 (memory model feature register) in the assembler. This register provides information about the implemented memory model and memory management support. llvm-svn: 239302
-
Igor Breger authored
Implemented DAG lowering for all these forms. Added tests for DAG lowering and encoding. Differential Revision: http://reviews.llvm.org/D10310 llvm-svn: 239300
-
- Jun 07, 2015
-
-
Colin LeMahieu authored
[objdump] Moving PrintImmHex out of MachODump and in to llvm-objdump and setting instprinter appropriately. llvm-svn: 239265
-
Colin LeMahieu authored
Teaching llvm-mc how to understand the defsym command line option. This allows integer-constant symbols to be defined on the command line and used during assembly. llvm-svn: 239240
-
- Jun 06, 2015
-
-
Colin LeMahieu authored
[MC] Common symbols weren't being checked for redeclaration which allowed an assembly file to generate an assertion in setCommon(): !isCommon(). This change allows redeclaration as long as the size and alignment match exactly, otherwise report a fatal error. llvm-svn: 239227
-
Rafael Espindola authored
Fixes pr23771. llvm-svn: 239214
-
- Jun 05, 2015
-
-
Colin LeMahieu authored
llvm-svn: 239161
-
John Brawn authored
These are added mainly for the benefit of clang, but this also means that they are now allowed in .fpu directives and we emit the correct .fpu directive when single-precision-only is used. Differential Revision: http://reviews.llvm.org/D10238 llvm-svn: 239151
-
Toma Tabacu authored
This is breaking the Windows buildbots. llvm-svn: 239145
-
Toma Tabacu authored
Summary: Only restoring AvailableFeatures is not enough and will lead to buggy behaviour. For example, if we have a feature enabled and we ".set pop", the next time we try to ".set" that feature nothing will happen because the "!(STI.getFeatureBits()[Feature])" check will be false, because we didn't restore STI.FeatureBits. In order to fix this, we need to make MipsAssemblerOptions remember the STI.FeatureBits instead of the AvailableFeatures and then regenerate AvailableFeatures each time we ".set pop". This is because, AFAIK, there is no way to convert from AvailableFeatures back to STI.FeatureBits, but the reverse is possible by using ComputeAvailableFeatures(STI.FeatureBits). I also moved the updating of AssemblerOptions inside the "if" statement in setFeatureBits() and clearFeatureBits(), as there is no reason to update if nothing changes. Reviewers: dsanders, mkuper Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9156 llvm-svn: 239144
-
- Jun 04, 2015
-
-
Jim Grosbach authored
Fix the FIXME and remove this old as(1) compat option. It was useful for bringup of the integrated assembler to diff object files, but now it's just causing more relocations than strictly necessary to be generated. rdar://21201804 llvm-svn: 239084
-
Rafael Espindola authored
Section symbols exist as an optimization: instead of having multiple relocations point to different symbols, many of them can point to a single section symbol. When that optimization is unused, a section symbol is also unused and adds no extra information to the object file. This saves a bit of space on the object files and makes the output of llvm-objdump -t easier to read and consequently some tests get quite a bit simpler. llvm-svn: 239045
-
Rafael Espindola authored
llvm-svn: 239042
-
Rafael Espindola authored
llvm-svn: 239041
-
Igor Breger authored
llvm-svn: 239019
-
Elena Demikhovsky authored
Added all forms of VPERMPS/PD instrcuctions. Added encoding tests. llvm-svn: 239016
-
Rafael Espindola authored
llvm-svn: 239011
-
- Jun 03, 2015
-
-
Asaf Badouh authored
AVX-512: Implemented GETEXP instruction for KNL and SKX Added rounding mode modifier for SQRTPS/PD Added tests for encoding and intrinsics. CR: http://reviews.llvm.org/D9991 llvm-svn: 238923
-
Elena Demikhovsky authored
Added tests for encoding. By Igor Breger (igor.breger@intel.com) llvm-svn: 238917
-