Commit Graph
24 Commits
Author SHA1 Message Date
Russell Keith-Magee bc4fc07aa5 Fixed #181 -- Corrected problems with ARMv7 build under iOS.
Based on a patch from @fealebenpae, with input from @SolaWing and @rth7680,
and testing from @superdump.
2015-12-21 00:37:06 +08:00
Andrew Pinski 95df379193 aarch64: Handle ILP32 ABI 2015-02-11 08:31:48 -08:00
Yavor Georgiev 536366349c aarch64: implement the trampoline table workaround for ffi closures on Apple systems
This is a direct copy/paste port of the ARM code, with changes because of Aarch64 pc-relative addressing restrictions.
2015-01-16 15:31:55 +02:00
Yavor Georgiev 05e65b4e20 aarch64: rewrite range syntax into list to appease Clang
Clang's assembler in Xcode 6 appears to choke when the operand of st4 is a range, but is happy with a list.
2015-01-16 15:31:02 +02:00
James Greenhalgh 9ae3bc870e Fix for https://github.com/atgreen/libffi/issues/141 2014-12-06 23:58:41 -05:00
Richard Henderson c6352b664c aarch64: Add support for Go closures 2014-11-12 09:29:32 +01:00
Richard Henderson 0e41c73b09 aarch64: Move x8 out of call_context
Reduces stack size.  It was only used by the closure, and there
are available argument registers.
2014-11-12 09:29:32 +01:00
Richard Henderson 12cf89ee04 aarch64: Move return value handling into ffi_closure_SYSV
As with the change to ffi_call_SYSV, this avoids copying data
into a temporary buffer.
2014-11-12 09:28:44 +01:00
Richard Henderson 4fe1aea121 aarch64: Move return value handling into ffi_call_SYSV
This lets us pass return data directly to the caller of ffi_call
in most cases, rather than storing it into temporary storage first.
2014-11-12 09:28:44 +01:00
Richard Henderson 325471ea6a aarch64: Merge prep_args with ffi_call
Use the trick to allocate the stack frame for ffi_call_SYSV
within ffi_call itself.
2014-11-12 09:28:44 +01:00
Richard Henderson 2e32f9bf6f aarch64: Use correct return registers
There are fewer return registers than argument registers.
2014-11-12 09:28:44 +01:00
Richard Henderson 95a04af134 aarch64: Reduce the size of register_context
We don't need to store 32 general and vector registers.
Only 8 of each are used for parameter passing.
2014-11-12 09:28:44 +01:00
Ole André Vadla Ravnås a539f7ffd6 Fix alignment of AArch64 assembler functions 2014-04-06 20:57:32 +02:00
Anthony Green 49f7729c3c aarch64 fix 2014-02-28 00:17:16 -05:00
Zachary Waldowski 0a333d6c39 Darwin/aarch64: Fix size_t assumptions 2014-02-05 14:28:59 -05:00
Zachary Waldowski 5658b08926 Darwin/aarch64: Use CNAME, restrict .size like ARM 2014-02-05 14:28:58 -05:00
Zachary Waldowski 0717578080 Darwin/aarch64: Fix invalid reference in assembly 2014-02-05 14:28:58 -05:00
Anthony Green 3dc3f32c35 Undo iOS ARM64 changes. 2013-12-05 16:23:25 -05:00
Zachary Waldowski 0278284e47 Darwin/aarch64: size_t assumptions 2013-11-30 12:02:18 -05:00
Zachary Waldowski b513dfe79d Darwin/aarch64: Restrict .size to ELF like arm32. 2013-11-30 04:16:50 -05:00
Zachary Waldowski bc978099bf Darwin/aarch64: Potentially(?) fix compile error 2013-11-30 04:16:48 -05:00
Zachary Waldowski d6bb931446 Darwin/aarch64: Use CNAME refs 2013-11-30 04:16:45 -05:00
Anthony Green 128cd1d2f3 Fix spelling errors 2013-10-08 06:45:51 -04:00
Anthony Green 58e8b66f70 AArch64 port 2012-10-30 07:36:49 -04:00