llvm-6502/lib
Jonathan Roelofs b23c2d9b2c Re-apply r214881: Fix return sequence on armv4 thumb
This reverts r214893, re-applying r214881 with the test case relaxed a bit to
satiate the build bots.

POP on armv4t cannot be used to change thumb state (unilke later non-m-class
architectures), therefore we need a different return sequence that uses 'bx'
instead:

  POP {r3}
  ADD sp, #offset
  BX r3

This patch also fixes an issue where the return value in r3 would get clobbered
for functions that return 128 bits of data. In that case, we generate this
sequence instead:

  MOV ip, r3
  POP {r3}
  ADD sp, #offset
  MOV lr, r3
  MOV r3, ip
  BX lr

http://reviews.llvm.org/D4748



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214928 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-05 21:32:21 +00:00
..
Analysis Teach the SLP Vectorizer that keeping some values live over a callsite can have a cost. 2014-08-05 12:30:34 +00:00
AsmParser Remove dead code in condition 2014-08-05 18:22:58 +00:00
Bitcode BitcodeReader: Fix non-determinism in use-list order 2014-08-05 17:49:48 +00:00
CodeGen Optimize vector fabs of bitcasted constant integer values. 2014-08-05 17:35:22 +00:00
DebugInfo
ExecutionEngine
IR Provide convenient access to the zext/sext attributes of function arguments. NFC. 2014-08-05 05:43:41 +00:00
IRReader
LineEditor
Linker
LTO Don't internalize all but main by default. 2014-08-05 20:10:38 +00:00
MC Enable Darwin vararg parameters support in assembler macros. 2014-08-04 23:14:37 +00:00
Object
Option
ProfileData
Support
TableGen Allow binary and for tblgen math. 2014-08-05 09:43:25 +00:00
Target Re-apply r214881: Fix return sequence on armv4 thumb 2014-08-05 21:32:21 +00:00
Transforms Don't internalize all but main by default. 2014-08-05 20:10:38 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile