llvm-6502/lib
Tim Northover 4a9b6b798d AArch64: add stubs to support long function calls on MCJIT
As with global accesses, external functions could exist anywhere in
memory. Therefore the stub must create a complete 64-bit address. This
patch implements the fragment as (roughly):
    movz x16, #:abs_g3:somefunc
    movk x16, #:abs_g2_nc:somefunc
    movk x16, #:abs_g1_nc:somefunc
    movk x16, #:abs_g0_nc:somefunc
    br x16

In principle we could save 4 bytes by using a literal-load instead,
but it is unclear that would be more efficient and can only be tested
when real hardware is readily available.

This allows (for example) the MCJIT test 2003-05-07-ArgumentTest to
pass on AArch64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181133 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-04 20:14:09 +00:00
..
Analysis RegionInfo: Do not crash if unreachable block is found 2013-05-03 15:48:34 +00:00
Archive Fix auto_ptr is deprecated warnings 2013-02-26 21:20:35 +00:00
AsmParser Fix for PR 14965: Better error message for GEP with partially defined contents 2013-04-22 17:03:42 +00:00
Bitcode This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
CodeGen TiedTo flag can now be placed on implicit operands. isTwoAddrUse() should look 2013-05-02 02:07:32 +00:00
DebugInfo Clarify getRelocationAddress x getRelocationOffset a bit. 2013-04-25 12:28:45 +00:00
ExecutionEngine AArch64: add stubs to support long function calls on MCJIT 2013-05-04 20:14:09 +00:00
IR This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
IRReader Measure time that IR parsing took as part of the -time-passes measurement. 2013-04-03 15:33:45 +00:00
Linker Fix a performance bug in the Linker. 2013-05-04 05:05:18 +00:00
MC [PowerPC] Parse platform-specifc variant kinds in AsmParser 2013-05-03 19:52:35 +00:00
Object This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
Option Resort the #include lines in include/... and lib/... with the 2013-01-02 10:22:59 +00:00
Support AArch64: use __clear_cache under GCCish environments 2013-05-04 18:52:44 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Target AArch64: implement first relocation required for MCJIT 2013-05-04 20:13:59 +00:00
Transforms Tabs to spaces. No functionality change. 2013-05-04 01:08:15 +00:00
CMakeLists.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LLVMBuild.txt Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
Makefile Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00