llvm-6502/lib
Kevin Enderby 1a47d66496 Change the ARM assembler to require a :lower16: or :upper16 on non-constant
expressions for mov instructions instead of silently truncating by default.

For the ARM assembler, we want to avoid misleadingly allowing something
like "mov r0, <symbol>" especially when we turn it into a movw and the
expression <symbol> does not have a :lower16: or :upper16" as part of the
expression.  We don't want the behavior of silently truncating, which can be
unexpected and lead to bugs that are difficult to find since this is an easy
mistake to make.

This does change the previous behavior of llvm but actually matches an
older gnu assembler that would not allow this but print less useful errors
of like “invalid constant (0x927c0) after fixup” and “unsupported relocation on
symbol foo”.  The error for llvm is "immediate expression for mov requires
:lower16: or :upper16" with correct location information on the operand
as shown in the added test cases.

rdar://12342160


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206669 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-18 23:06:39 +00:00
..
Analysis Reapply "blockfreq: Rewrite BlockFrequencyInfoImpl" (#2) 2014-04-18 22:30:03 +00:00
AsmParser [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-16 04:21:27 +00:00
Bitcode [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
CodeGen Reapply "blockfreq: Rewrite BlockFrequencyInfoImpl" (#2) 2014-04-18 22:30:03 +00:00
DebugInfo [llvm-symbolizer] Print file/line for a PC even if there is no DIE describing it. 2014-04-18 22:22:44 +00:00
ExecutionEngine [ExecutionEngine] Allow JIT clients to enable/disable module verification. 2014-04-18 06:48:23 +00:00
IR Fix bug 19437 - Only add discriminators for DWARF 4 and above. 2014-04-17 22:33:50 +00:00
IRReader [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LTO verify-di: Implement DebugInfoVerifier 2014-04-15 16:27:38 +00:00
MC Compress debug sections only when beneficial. 2014-04-18 21:52:26 +00:00
Object [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
Option [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
ProfileData ProfileData: Don't forward declare ComputeHash and make it static inline 2014-04-18 22:00:22 +00:00
Support ManagedStatic is never built with a null constructor, remove support for it. 2014-04-17 20:30:35 +00:00
TableGen [C++11] Make use of 'nullptr' in TableGen library. 2014-04-09 04:50:04 +00:00
Target Change the ARM assembler to require a :lower16: or :upper16 on non-constant 2014-04-18 23:06:39 +00:00
Transforms [msan] Add -msan-instrumentation-with-call-threshold. 2014-04-18 12:17:20 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00