llvm-project/llvm
Saleem Abdulrasool 3a23917d48 ARM: improve instruction validation for thumb mode
The ARM Architecture Reference Manual states the following:
  LDM{,IA,DB}:
    The SP cannot be in the list.
    The PC can be in the list.
    If the PC is in the list:
      • the LR must not be in the list
      • the instruction must be either outside any IT block, or the last
        instruction in an IT block.
  POP:
    The PC can be in the list.
    If the PC is in the list:
      • the LR must not be in the list
      • the instruction must be either outside any IT block, or the last
        instruction in an IT block.
  PUSH:
    The SP and PC can be in the list in ARM instructions, but not in Thumb
    instructions.
  STM:{,IA,DB}:
    The SP and PC can be in the list in ARM instructions, but not in Thumb
    instructions.

llvm-svn: 224502
2014-12-18 05:24:38 +00:00
..
autoconf Require python 2.7. 2014-12-12 15:29:31 +00:00
bindings Go bindings: introduce Value.ConstantAsMetadata. 2014-12-13 02:25:57 +00:00
cmake Disable --icf=safe to avoid a bug. 2014-12-12 14:28:19 +00:00
docs IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
examples Once more on the cmake build. nativecodegen->native on the dependencies. 2014-12-08 18:24:06 +00:00
include Modernize the getStreamedBitcodeModule interface a bit. NFC. 2014-12-18 05:08:43 +00:00
lib ARM: improve instruction validation for thumb mode 2014-12-18 05:24:38 +00:00
projects
test ARM: improve instruction validation for thumb mode 2014-12-18 05:24:38 +00:00
tools Modernize the getStreamedBitcodeModule interface a bit. NFC. 2014-12-18 05:08:43 +00:00
unittests Remove 'metadata' from comments 2014-12-16 07:45:05 +00:00
utils On behalf of Matthew Wahab: 2014-12-16 18:16:17 +00:00
.arcconfig
.clang-format
.clang-tidy Enable display of compiler diagnostics in clang-tidy by default. 2014-10-29 17:29:38 +00:00
.gitignore
CMakeLists.txt Adding a new option to CMake to disable C++ atexit on llvm-shlib. 2014-12-09 18:49:55 +00:00
CODE_OWNERS.TXT Tom Stellard is now the code owner for libclc. 2014-12-12 01:11:48 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Add a check for misbehaving -Wcomment from gcc-4.7 and add 2014-11-05 00:35:15 +00:00
Makefile.rules Add a check for misbehaving -Wcomment from gcc-4.7 and add 2014-11-05 00:35:15 +00:00
README.txt [TEST-COMMIT] As per Developer Policy, Added a blank line. 2014-12-06 00:38:39 +00:00
configure Require python 2.7. 2014-12-12 15:29:31 +00:00
llvm.spec.in

README.txt

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

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.