Go to file
Mihai Popa ad18d3ce53 Fix assembling of Thumb2 branch instructions.
The long encoding for Thumb2 unconditional branches is broken.
Additionally, there is no range checking for target operands; as such 
for instructions originating in assembly code, only short Thumb encodings
are generated, regardless of the bitsize needed for the offset.

Adding range checking is non trivial due to the representation of Thumb
branch instructions. There is no true difference between conditional and
unconditional branches in terms of operands and syntax - even unconditional
branches have a predicate which is expected to match that of the IT block
they are in. Yet, the encodings and the permitted size of the offset differ.

Due to this, for any mnemonic there are really 4 encodings to choose for.

The problem cannot be handled in the parser alone or by manipulating td files.
Because the parser builds first a set of match candidates and then checks them
one by one, whatever tablegen-only solution might be found will ultimately be
dependent of the parser's evaluation order. What's worse is that due to the fact
that all branches have the same syntax and the same kinds of operands, that 
order is governed by the lexicographical ordering of the names of operand 
classes...

To circumvent all this, any necessary disambiguation is added to the instruction
validation pass.

llvm-svn: 188067
2013-08-09 10:38:32 +00:00
clang Add lrint to the list of math builtins. It never sets errno so we can mark it as readnone. 2013-08-09 10:12:30 +00:00
clang-tools-extra Fix false error message for function-style macro instance used as arguments in other function-style macros instances, and add test for it. 2013-08-09 00:22:20 +00:00
compiler-rt [sanitizer] Limit scandir interceptor to Linux. 2013-08-08 14:04:36 +00:00
debuginfo-tests Now that we get non-trivial value parameters locations correct, un-XFAIL these tests. 2013-06-19 22:07:11 +00:00
libclc Add missing integer min/max definitions 2013-07-26 13:02:02 +00:00
libcxx N3644 tests for map/multimap/set/multiset. Drive-by NOEXCEPT for __tree_const_iterator constructor. Fix comment typos in other tests 2013-08-08 21:52:50 +00:00
libcxxabi tip-of-trunk clang has corrected some access checks for special members in a virtual inheritance hierarchy. Change a few private inheritances to protected. This change will not impact what the test was testing. This fixes http://llvm.org/bugs/show_bug.cgi?id=16753. 2013-07-30 19:00:45 +00:00
lld [PECOFF] Create __ImageBase symbol. 2013-08-09 04:44:15 +00:00
lldb Ensure that we don't build LLVM with a dependency 2013-08-08 21:30:51 +00:00
llvm Fix assembling of Thumb2 branch instructions. 2013-08-09 10:38:32 +00:00
polly PollyDependence: Simplify Read/Write/MayWrite before feeding them into ISL. 2013-08-08 13:55:45 +00:00