llvm-project/llvm
Peter Smith adde667007 [ARM] Support fixup for Thumb2 modified immediate
This change adds a new fixup fixup_t2_so_imm for the t2_so_imm_asmoperand
"T2SOImm". The fixup permits code such as:
.L1:
 sub r3, r3, #.L2 - .L1
.L2:
to assemble in Thumb2 as well as in ARM state.
    
The operand predicate isT2SOImm() explicitly doesn't match expressions
containing :upper16: and :lower16: as expressions with these operators
must match the movt and movw instructions.
    
The test mov r0, foo2 in thumb2-diagnostics is moved to a new file as the
fixup delays the error message till after the assembler has quit due to
the other errors.
    
As the mov instruction shares the t2_so_imm_asmoperand mov instructions
with a non constant expression now match t2MOVi rather than t2MOVi16 so the
error message is slightly different.
    
Fixes PR28647

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

llvm-svn: 304702
2017-06-05 09:37:12 +00:00
..
bindings [go bindings] Rmove duplicated conversion function definitions after r300843. 2017-04-20 19:06:11 +00:00
cmake CMake: Fix docs-llvm-man target when clang+llvm is in the same source tree 2017-05-15 09:34:23 +00:00
docs [docs] Update name of vectorization interleave flag. 2017-05-31 23:02:55 +00:00
examples [Examples] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-26 00:00:14 +00:00
include Revert "[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet." 2017-06-05 07:35:52 +00:00
lib [ARM] Support fixup for Thumb2 modified immediate 2017-06-05 09:37:12 +00:00
projects Add temporary workaround to allow in-tree libc++ builds on Windows 2017-05-11 01:44:30 +00:00
resources
runtimes [CMake][runtimes] Add install target for runtimes builtins 2017-06-02 19:38:11 +00:00
test [ARM] Support fixup for Thumb2 modified immediate 2017-06-05 09:37:12 +00:00
tools [PDB] Fix use after free. 2017-06-03 00:33:35 +00:00
unittests [ConstantRange] Add another truncate unittest for wrapped set staying a wrapped set. 2017-06-04 23:07:53 +00:00
utils git-llvm: Update the project list for the llvm-project-20170507 monorepo. 2017-06-04 22:18:57 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Update the documentation and CMake file for Visual Studio generators. 2017-05-25 21:01:30 +00:00
CODE_OWNERS.TXT
CREDITS.TXT update of the url 2017-05-14 07:55:01 +00:00
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.