llvm-6502/lib
Jan Wen Voung a44126f432 Use 32-bit ebp for NaCl64 in a limited case: llvm.frameaddress.
Summary:
Follow up to [x32] "Use ebp/esp as frame and stack pointer":
http://reviews.llvm.org/D4617

In that earlier patch, NaCl64 was made to always use rbp.
That's needed for most cases because rbp should hold a full
64-bit address within the NaCl sandbox so that load/stores
off of rbp don't require sandbox adjustment (zeroing the top
32-bits, then filling those by adding r15).

However, llvm.frameaddress returns a pointer and pointers
are 32-bit for NaCl64. In this case, use ebp instead, which
will make the register copy type check. A similar mechanism
may be needed for llvm.eh.return, but is not added in this change.

Test Plan: test/CodeGen/X86/frameaddr.ll

Reviewers: dschuff, nadav

Subscribers: jfb, llvm-commits

Differential Revision: http://reviews.llvm.org/D6514

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223510 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-05 20:55:53 +00:00
..
Analysis BFI: Saturate when combining edges to a successor 2014-12-05 19:13:42 +00:00
AsmParser Prologue support 2014-12-03 02:08:38 +00:00
Bitcode Ask the module for its the identified types. 2014-12-03 07:18:23 +00:00
CodeGen These two calls were grabbing the same register info. Unify them. 2014-12-05 19:23:55 +00:00
DebugInfo Make DWARFAcceleratorTable::dump() const. 2014-11-20 16:21:11 +00:00
ExecutionEngine [MCJIT] Unique-ptrify the RTDyldMemoryManager member of MCJIT. NFC. 2014-12-03 00:51:19 +00:00
IR Fix a bug when pretty-printing DW_OP_deref. 2014-12-05 18:19:38 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker Remove unused arguments. NFC. 2014-12-05 19:35:07 +00:00
LTO Remove StringMap::GetOrCreateValue in favor of StringMap::insert 2014-11-19 05:49:42 +00:00
MC clang-formatted ranged loops and assignment, NFC. 2014-12-04 08:30:39 +00:00
Object Add mach-o LC_RPATH support to llvm-objdump 2014-12-04 07:37:02 +00:00
Option
ProfileData llvm-cov: Sink some reporting logic into CoverageMapping 2014-11-14 01:50:32 +00:00
Support Silence warning: variable 'buffer' set but not used. 2014-12-04 21:36:38 +00:00
TableGen Revert r222957 "Replace std::map<K, V*> with std::map<K, V> to handle ownership and deletion of the values." 2014-11-30 01:20:17 +00:00
Target Use 32-bit ebp for NaCl64 in a limited case: llvm.frameaddress. 2014-12-05 20:55:53 +00:00
Transforms [msan] Avoid extra origin address realignment. 2014-12-05 14:34:03 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile