llvm-6502/include/llvm/Support
Oliver Stannard 8f832fce3b [Thumb1] Re-write emitThumbRegPlusImmediate
This was motivated by a bug which caused code like this to be
miscompiled:
  declare void @take_ptr(i8*)
  define void @test() {
    %addr1.32 = alloca i8
    %addr2.32 = alloca i32, i32 1028
    call void @take_ptr(i8* %addr1)
    ret void
  }

This was emitting the following assembly to get the value of %addr1:
  add r0, sp, #1020
  add r0, r0, #8
However, "add r0, r0, #8" is not a valid Thumb1 instruction, and this
could not be assembled. The generated object file contained this,
resulting in r0 holding SP+8 rather tha SP+1028:
  add r0, sp, #1020
  add r0, sp, #8

This function looked like it could have caused miscompilations for
other combinations of registers and offsets (though I don't think it is
currently called with these), and the heuristic it used did not match
the emitted code in all cases.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222125 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-17 11:18:10 +00:00
..
AIXDataTypesFix.h
AlignOf.h
Allocator.h Test commit. 2014-11-03 10:58:05 +00:00
ARMBuildAttributes.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ARMEHABI.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
ARMWinEH.h Support: Delete {aligned_,}{u,}{little,big}8_t 2014-09-11 21:46:33 +00:00
ArrayRecycler.h
Atomic.h
BlockFrequency.h
BranchProbability.h
Capacity.h
Casting.h
CBindingWrapping.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
circular_raw_ostream.h
CodeGen.h Add Position-independent Code model Module API. 2014-11-07 04:46:10 +00:00
COFF.h Calm down build bots 2014-11-14 08:38:17 +00:00
CommandLine.h Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h 2014-11-04 01:12:21 +00:00
Compiler.h Remove the END_WITH_NULL macro now that Clang doesn't use it 2014-11-04 01:15:53 +00:00
Compression.h
ConvertUTF.h
CrashRecoveryContext.h Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
DataExtractor.h llvm-symbolizer: teach it about PowerPC64 ELF function descriptors 2014-11-07 09:08:39 +00:00
DataStream.h
DataTypes.h.cmake Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h 2014-11-04 01:12:21 +00:00
DataTypes.h.in Rename END_WITH_NULL to LLVM_END_WITH_NULL and move to Compiler.h 2014-11-04 01:12:21 +00:00
Debug.h
DOTGraphTraits.h
Dwarf.h Modernize doxygen comments in Support/Dwarf.h 2014-10-23 04:08:38 +00:00
DynamicLibrary.h Fix some semantic usability issues with DynamicLibrary. 2014-08-27 18:13:25 +00:00
ELF.h Add support for small-model PIC for PowerPC. 2014-11-12 15:16:30 +00:00
Endian.h [Support][Endian] Overload += and -= 2014-09-11 22:55:25 +00:00
EndianStream.h Fixed a build problem when there were headers 2014-08-30 02:30:02 +00:00
Errc.h
Errno.h
ErrorHandling.h
ErrorOr.h ErrorOr: Be more explicit in the implicit conversion to bool docs 2014-11-04 21:01:48 +00:00
FileOutputBuffer.h unique_ptrify FileOutputBuffer::FileOutputBuffer 2014-09-02 17:49:23 +00:00
FileSystem.h Move sys::fs::AccessMode out of @brief in the function. [-Wdocumentation] 2014-09-12 15:12:32 +00:00
FileUtilities.h
Format.h [Support] Fix Format.h to build on Windows 2014-09-25 21:00:38 +00:00
FormattedStream.h
GCOV.h test commit: remove trailing space 2014-07-23 17:18:05 +00:00
GenericDomTree.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
GenericDomTreeConstruction.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
GraphWriter.h Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
Host.h
LEB128.h Fixup for r217830. Don't do left shifts on negative values 2014-09-17 18:23:07 +00:00
LICENSE.TXT
LineIterator.h LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
Locale.h
LockFileManager.h
MachO.h Adds the next bit of support for llvm-objdump’s -private-headers for executable Mach-O files. 2014-09-04 16:54:47 +00:00
ManagedStatic.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MathExtras.h [Thumb1] Re-write emitThumbRegPlusImmediate 2014-11-17 11:18:10 +00:00
MD5.h Make the MD5 result name consistent between functions, header and source. 2014-10-06 13:48:07 +00:00
Memory.h
MemoryBuffer.h [Support] Add MemoryBuffer::getFileSlice() 2014-10-08 00:22:18 +00:00
MemoryObject.h Update \param(s) in MemoryObject::readBytes(). [-Wdocumentation] 2014-11-13 04:56:41 +00:00
Mutex.h Support: make LLVM Mutexes STL-compatible 2014-08-23 22:49:22 +00:00
MutexGuard.h Support: make LLVM Mutexes STL-compatible 2014-08-23 22:49:22 +00:00
OnDiskHashTable.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Options.h Add missing header guard. 2014-10-16 10:10:07 +00:00
OutputBuffer.h
Path.h Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already. 2014-08-30 16:48:02 +00:00
PluginLoader.h
PointerLikeTypeTraits.h
PrettyStackTrace.h
Process.h Support: Don't call close again if we get EINTR 2014-10-07 05:48:40 +00:00
Program.h Remove FindProgramByName. NFC. 2014-11-04 12:35:47 +00:00
RandomNumberGenerator.h Fix the build. 2014-06-25 15:47:36 +00:00
raw_os_ostream.h
raw_ostream.h [Support] Add type-safe alternative to llvm::format() 2014-09-25 20:30:58 +00:00
Recycler.h
RecyclingAllocator.h
Regex.h
Registry.h
RegistryParser.h
RWMutex.h Support: make LLVM Mutexes STL-compatible 2014-08-23 22:49:22 +00:00
SaveAndRestore.h
ScaledNumber.h Include <tuple> for std::tie 2014-06-24 05:59:52 +00:00
Signals.h
SMLoc.h
Solaris.h
SourceMgr.h Add an explicit move constructor to SrcBuffer 2014-08-21 23:24:08 +00:00
SpecialCaseList.h Fix indenting caused by clang-format+spuriously indented access specifier in r216925 2014-09-15 22:20:31 +00:00
StreamingMemoryObject.h Read 64 bits at a time in the bitcode reader. 2014-11-13 07:23:22 +00:00
StringPool.h
SwapByteOrder.h Use the LLVM_GNUC_PREREQ macro instead of the longhand version check 2014-11-04 01:28:33 +00:00
SystemUtils.h
TargetRegistry.h Simplify handling of --noexecstack by using getNonexecutableStackSection. 2014-10-15 16:12:52 +00:00
TargetSelect.h
Threading.h Revert 220932. 2014-11-05 04:44:31 +00:00
ThreadLocal.h
Timer.h
TimeValue.h Cleaning up static initializers in TimeValue. 2014-08-29 01:05:12 +00:00
ToolOutputFile.h Modernize raw_fd_ostream's constructor a bit. 2014-08-25 18:16:47 +00:00
type_traits.h
Unicode.h
UnicodeCharRanges.h
UniqueLock.h Support: add llvm::unique_lock 2014-08-23 23:07:14 +00:00
Valgrind.h
Watchdog.h
Win64EH.h Support: Delete {aligned_,}{u,}{little,big}8_t 2014-09-11 21:46:33 +00:00
WindowsError.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
YAMLParser.h yaml::Stream doesn't need to take ownership of the buffer. 2014-08-27 19:03:22 +00:00
YAMLTraits.h Fix memory leak in error paths in YAMLTraits by using unique_ptr 2014-09-15 18:39:24 +00:00