llvm-project/llvm/lib
Simon Tatham b87669f166 [ARM] Disallow PC, and optionally SP, in VMOVRH and VMOVHR.
Arm v8.1-M supports the VMOV instructions that move a half-precision
value to and from a GPR, but not if the GPR is SP or PC.

To fix this, I've changed those instructions to use the rGPR register
class instead of GPR. rGPR always excludes PC, and it excludes SP
except in the presence of the HasV8Ops target feature (i.e. Arm v8-A).
So the effect is that VMOV.F16 to and from PC is now illegal
everywhere, but VMOV.F16 to and from SP is illegal only on non-v8-A
cores (which I believe is all as it should be).

Reviewers: dmgreen, samparker, SjoerdMeijer, ostannard

Reviewed By: ostannard

Subscribers: ostannard, javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60704

llvm-svn: 362942
2019-06-10 14:43:55 +00:00
..
Analysis [InstSimplify] reduce code duplication for fcmp folds; NFC 2019-06-09 13:58:46 +00:00
AsmParser Revert r361953 "[SVE][IR] Scalable Vector IR Type" 2019-06-09 19:27:50 +00:00
BinaryFormat [XCOFF] Add functionality for parsing AIX XCOFF object file headers 2019-04-04 00:53:21 +00:00
Bitcode Revert r361953 "[SVE][IR] Scalable Vector IR Type" 2019-06-09 19:27:50 +00:00
CodeGen [DebugInfo] More strict debug range for stack variables 2019-06-10 08:41:06 +00:00
DebugInfo Extend the DWARFExpression address handling to support 16-bit addresses 2019-06-01 09:18:26 +00:00
Demangle llvm-undname: Correctly demangle vararg parameters 2019-06-04 19:10:08 +00:00
ExecutionEngine [ExecutionEngine] Add UnaryOperator visitor to the interpreter 2019-06-10 14:38:48 +00:00
FuzzMutate [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
Fuzzer
IR Revert r361953 "[SVE][IR] Scalable Vector IR Type" 2019-06-09 19:27:50 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LTO [Attributor] Pass infrastructure and fixpoint framework 2019-06-05 03:02:24 +00:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
MC [MC][ELF] Don't create relocations with section symbols for STB_LOCAL ifunc 2019-06-07 03:47:22 +00:00
MCA [MCA] Further refactor the bottleneck analysis view. NFCI. 2019-06-10 12:50:08 +00:00
Object [MACHO] Replaced calls to getStruct with getStructOrErr in functions returning Error or Expected or similar 2019-06-04 16:55:30 +00:00
ObjectYAML [yaml2obj/obj2yaml] - Make RawContentSection::Content and RawContentSection::Size optional 2019-06-10 12:43:18 +00:00
Option Option spell checking: Penalize delimiter flags if input has no argument 2019-05-01 16:45:15 +00:00
Passes [Attributor] Pass infrastructure and fixpoint framework 2019-06-05 03:02:24 +00:00
ProfileData Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
Remarks [Remarks] Fix usage of enum class 2019-05-30 22:01:56 +00:00
Support [APFloat] APFloat::Storage::Storage - refix use after move 2019-06-07 19:51:22 +00:00
TableGen TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
Target [ARM] Disallow PC, and optionally SP, in VMOVRH and VMOVHR. 2019-06-10 14:43:55 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI [TextAPI] Fix Symbol::dump which was failing to append the SymbolKind string. 2019-04-29 18:25:04 +00:00
ToolDrivers llvm-lib: Disallow mixing object files with different machine types 2019-06-07 13:24:34 +00:00
Transforms [InstCombine] allow unordered preds when canonicalizing to fabs() 2019-06-10 14:14:51 +00:00
WindowsManifest Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
XRay Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
CMakeLists.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00
LLVMBuild.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00