llvm-project/llvm
Sander de Smalen 149916d29a [AArch64][AsmParser] Extend RegOp with integrated 'shift/extend'.
Summary:
In some cases the shift/extend needs to be explicitly parsed together
with the register, rather than as a separate operand. This is needed
for addressing modes where the instruction as a whole dictates the
scaling/extend, rather than specific bits in the instruction.
By parsing them as a single operand, we avoid the need to pass an
extra operand in all CodeGen patterns (because all operands need to
have an associated value), and we avoid the need to update TableGen to
accept operands that have no associated bits in the instruction.

An added benefit of parsing them together is that the assembler
can give a sensible diagnostic if the scaling is not correct.

This is patch [2/4] in a series to add assembler/disassembler support for
SVE's contiguous LD1 (scalar+scalar) instructions:
- Patch [1/4]: https://reviews.llvm.org/D45687
- Patch [2/4]: https://reviews.llvm.org/D45688
- Patch [3/4]: https://reviews.llvm.org/D45689
- Patch [4/4]: https://reviews.llvm.org/D45690

Reviewers: fhahn, rengolin, javed.absar, huntergr, SjoerdMeijer, t.p.northover, echristo, evandro

Reviewed By: fhahn, SjoerdMeijer

Subscribers: kristof.beyls, llvm-commits

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

llvm-svn: 330394
2018-04-20 07:24:20 +00:00
..
bindings [llgo] Move SetSubprogram 2018-04-07 16:26:59 +00:00
cmake [cmake] Improve pthread_[gs]etname_np detection code 2018-04-18 13:13:27 +00:00
docs [AMDGPU] Add gfx902 product names 2018-04-14 01:58:10 +00:00
examples [ORC] Create a new SymbolStringPool by default in ExecutionSession constructor. 2018-04-02 20:57:56 +00:00
include LowerTypeTests: Propagate symver directives 2018-04-20 01:36:48 +00:00
lib [AArch64][AsmParser] Extend RegOp with integrated 'shift/extend'. 2018-04-20 07:24:20 +00:00
projects
resources
runtimes [CMake][runtimes] Process common options in runtimes build 2018-04-11 05:18:03 +00:00
test AMDGPU: Legalize the operand of SI_INIT_M0 2018-04-20 07:14:25 +00:00
tools [llvm-objdump] Issue error message when object file cannot be created 2018-04-19 20:48:35 +00:00
unittests [Unittests] Fix plugins test 2018-04-19 14:02:46 +00:00
utils [X86] Remove non-existant instruction name from X86DisassemblerTables.cpp. 2018-04-19 20:44:15 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [llvm-exegesis] Add a flag to disable libpfm even if present. 2018-04-11 07:32:43 +00:00
CODE_OWNERS.TXT CODE_OWNERS: Take ownership of C API. 2018-04-17 01:09:12 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.