diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-12-18 05:24:38 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-12-18 05:24:38 +0000 |
commit | 3a23917d48806270f0c8de083fd29d7354ad1e15 (patch) | |
tree | b25ef73f83f9ba8c12021706bbc362dafbb17ea0 /clang/lib/Driver/Action.cpp | |
parent | 69973e0fa0225ffc20b30d65a9c644cb682e3903 (diff) | |
download | bcm5719-llvm-3a23917d48806270f0c8de083fd29d7354ad1e15.tar.gz bcm5719-llvm-3a23917d48806270f0c8de083fd29d7354ad1e15.zip |
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
Diffstat (limited to 'clang/lib/Driver/Action.cpp')
0 files changed, 0 insertions, 0 deletions