|
3c372c38
|
2017-10-24T13:53:56
|
|
arm: fix a level of indirection issue
Rather than relying on the stack being 0'ed out always, do it manually.
The stack generally happened to be zero, and because the compiler
realizes that the tests are dealing with chars truncates the read value.
However, the top 3 nibbles of the value are undefined and may be
non-zero. The indirection level caused a null-pointer dereference.
Explicitly scribbling on the stack during the allocation causes test
failures without the original zexting behaviour.
|
|
7ad0ae7f
|
2017-10-10T11:44:05
|
|
arm: zext return value parameters
The closure function (invoked as closure->fun in ffi_closure_XXX_inner)
will only populate the actual number of bytes for the true return type,
which may be a character. This leaves garbage on the stack when the
assembly closure function (i.e. ffi_closure_XXX) reads the return value
off of the stack into r0 as a 4-byte value. ffi_closure_XXX always
leaves room for at least 4 bytes here, so we can safely set them to 0.
Otherwise, if there is garbage in any of these bytes, these end up in r0
and in the returned value as well.
|
|
02a5145a
|
2017-09-27T21:43:03
|
|
Merge pull request #263 from ksjogo/master
fix ios builds
|
|
10099d6c
|
2017-09-27T20:54:09
|
|
Merge pull request #271 from frida/fix/qnx-cache-flushing
arm: Fix cache flushing on QNX
|
|
bd72848c
|
2017-04-27T13:20:36
|
|
Prefix ALIGN macros with FFI_
|
|
00406945
|
2016-07-12T16:08:42
|
|
Update Xcodeproj
Include all currently relevent files.
Call autogen is build script.
Fix compiler settings.
Fix mach include.
|
|
ed848834
|
2016-08-10T14:57:22
|
|
arm: Fix cache flushing on QNX
Use `msync()` directly as `__clear_cache()` is broken in the
qnx650_gcc4.8.3 toolchain.
|
|
bc4fc07a
|
2015-12-21T00:37:06
|
|
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.
|
|
e3d2812c
|
2015-04-25T19:03:03
|
|
Modified arm/sysv.S to remove directives not allowed by clang.
|
|
ab83cbb9
|
2014-10-29T14:38:42
|
|
arm: Add support for Go closures
|
|
6fa617da
|
2014-10-21T11:27:11
|
|
arm: Add argument space for the hidden struct return pointer
This should have been failing all along, but it's only
exposed by the complex_int test case.
|
|
a529bec2
|
2014-10-21T11:26:59
|
|
arm: Add support for complex types
|
|
5e88ebe6
|
2014-10-20T15:10:43
|
|
arm: Remove internal FFI_TYPE constants
These have been replaced by the contents of internal.h.
|
|
a4b785ea
|
2014-10-17T02:07:32
|
|
arm: Rewrite ffi_closure
Move the push of the argument registers into ffi_closure_SYSV,
reducing the size of the trampoline.
|
|
e7f15f60
|
2014-10-17T01:27:16
|
|
arm: Rewrite ffi_call
Use the trick to allocate the stack frame for ffi_call_SYSV
within ffi_call itself.
|
|
a74a3aad
|
2014-10-17T01:21:22
|
|
arm: Rewrite vfp_type_p
Do not modify the ffi_type. Rearrange the tests so that we
quickly eliminate structures that cannot match. Return an
encoded value of element count and base type.
|
|
0d39b4bb
|
2014-10-17T01:02:52
|
|
arm: Deref ffi_put_arg arguments
|
|
57b24fb3
|
2014-10-17T00:53:21
|
|
arm: Deref ffi_align argument
|
|
c129bea8
|
2014-10-15T17:28:53
|
|
arm: Reindent arm/ffi.c
|
|
aaf3101b
|
2014-09-20T06:37:04
|
|
Fix -Werror=declaration-after-statement problem
|
|
001aaf4b
|
2014-02-28T00:20:17
|
|
When no VFP arguments are present the IP register is used
uninitialized. Initialize it to the value of FP.
This fixes a number of testsuite failures when configured for
armv7l-unknown-linux-gnueabihf
|
|
6eff9ff9
|
2013-12-30T17:48:10
|
|
Darwin/iOS: Improve unified syntax use for LLVM
|
|
994be3a5
|
2013-12-30T15:27:14
|
|
Darwin/iOS: Fix mis-typing of vfp_reg_free
|
|
a8e0a835
|
2013-12-30T15:26:20
|
|
Darwin/ARM: Assert on NULL dereference
This inhibits an analyzer warning by Clang on all platforms.
|
|
66469c38
|
2014-01-09T13:41:45
|
|
Darwin/ARM: Inhibit Clang previous prototype warnings
|
|
3dc3f32c
|
2013-12-05T16:23:25
|
|
Undo iOS ARM64 changes.
|
|
953b6f14
|
2012-04-24T11:16:20
|
|
Darwin/iOS: More unified syntax support w/ Clang.
Signed-off-by: Zachary Waldowski <zwaldowski@gmail.com>
|
|
c713a553
|
2012-04-24T10:25:29
|
|
Darwin/iOS: Simplify RETLDM arguments for LLVM 3.1
Signed-off-by: Zachary Waldowski <zwaldowski@gmail.com>
|
|
16ba1b80
|
2012-04-11T23:26:04
|
|
Darwin: Silence Clang warnings.
|
|
2f450822
|
2013-11-18T06:52:29
|
|
Clean up code to appease modern GCC compiler.
|
|
77f823e3
|
2013-11-13T14:26:57
|
|
stop trying to assing vfp regs once we are done with the registers
|
|
37067ec5
|
2013-11-12T19:49:01
|
|
mark all vfp registers as used when done.
To avoid assigning registers the would fit, once arguments have been on
the stack, we mark all registers as used once we do not find a free
register for the first time.
|
|
c2422174
|
2013-11-02T14:08:23
|
|
Merge pull request #45 from foss-for-synopsys-dwc-arc-processors/arc_support
arc: Fix build error
|
|
128cd1d2
|
2013-10-08T06:45:51
|
|
Fix spelling errors
|
|
b4112098
|
2013-03-27T16:38:35
|
|
create separated versions of ffi_prep_incoming_args_* for SYSV and VFP ABIs.
The different versions will be called depending on the value of cif->abi
|
|
9708e7cf
|
2013-03-27T19:31:04
|
|
folow the ARM hard-float ABI in ffi_prep_incoming_args_VFP
|
|
3c160861
|
2013-03-26T19:24:47
|
|
extend ffi_prepare_args for FFI_VFP (hard-float ABI), fixing an issue with passing VFP arguments in VFP registers and the stack, while at the same time not using all core registers.
|
|
0f2ff2d4
|
2013-03-26T19:22:02
|
|
separate ARM ffi_prepare_args in a version implementing the simple SYSV calling convention and one for the hard-float calling convention
|
|
3a352b8a
|
2013-03-26T14:24:04
|
|
move the hardfloat specific argument copying code to the helper function
|
|
5df6b794
|
2013-03-26T14:02:21
|
|
extract setting of arguments to be passed to a helper function
|
|
7d1048c4
|
2013-03-26T11:33:33
|
|
extract code to align the argument storage pointer to a helper function
|
|
39e6a586
|
2012-04-11T22:39:46
|
|
More mac/ios build improvements
|
|
39dccddb
|
2012-04-05T12:32:41
|
|
Fix building with Clang for Darwin (OS X 10.6+ and iOS
4.0+)
|
|
e1539266
|
2012-03-30T00:40:18
|
|
ARM VFP fix for old toolchains
|
|
8360bf1c
|
2012-02-23T07:01:13
|
|
Ensure that users don't include ffitarget.h directly
|
|
ff9454da
|
2011-11-12T17:18:51
|
|
Add David Gilbert's variadic function call support
|
|
322052ce
|
2011-11-12T16:11:49
|
|
Fix arm wince alignment issue
|
|
3d56106b
|
2011-11-12T07:20:24
|
|
Rebase
|
|
d992ac54
|
2011-07-29T17:32:53
|
|
Refresh from GCC
|
|
09f8f310
|
2011-02-28T15:36:07
|
|
More AIX fixes. rc9.
|
|
3000dc23
|
2011-02-13T08:55:53
|
|
Merge remote branch 'upstream/master'
|
|
1fbf9dc4
|
2011-02-13T08:06:39
|
|
Fix bad_abi test. rc5.
|
|
8195e0e1
|
2011-02-12T11:27:00
|
|
Fix symbol prefixes on Darwin.
|
|
28a00f61
|
2011-02-12T11:01:48
|
|
Apple assembler support; fixed most gas/ELF-isms.
|
|
7f2ea33a
|
2011-02-12T10:39:18
|
|
Replace RETLDM macro.
The macro is incompatible with Apple's assembler; switch to
a simple inline version.
|
|
0cad4386
|
2011-02-09T06:11:46
|
|
Add ChangeLog entry. Fix copyright headers.
|
|
1106229a
|
2011-02-08T19:20:09
|
|
Add iOS support
|
|
0e584399
|
2011-02-08T07:52:40
|
|
Refresh from GCC
|
|
2db72615
|
2010-11-21T10:50:56
|
|
Rebase
|
|
f6ab3edc
|
2010-10-27T19:34:51
|
|
Include the license header in the generated output.
|
|
cef61946
|
2010-10-27T13:59:30
|
|
Add missing copyright/license header.
|
|
83038cf2
|
2010-09-19T14:36:45
|
|
Implement FFI_EXEC_TRAMPOLINE_TABLE allocator for iOS/ARM.
This provides working closure support on iOS/ARM devices where
PROT_WRITE|PROT_EXEC is not permitted. The code passes basic
smoke tests, but requires further review.
|
|
b00ff3e9
|
2010-09-19T14:22:26
|
|
Rename the generated symbol
|
|
9e119644
|
2010-09-19T10:43:06
|
|
Add a hard-coded FFI_EXEC_TRAMPOLINE_TABLE arm implementation.
This implements support for re-mapping a shared table of executable
trampolines directly in front of a writable configuration page, working
around PROT_WRITE restrictions for sandboxed applications on Apple's
iOS.
This implementation is for testing purposes; a proper allocator is still
necessary, and ARM-specific code needs to be moved out of
src/closures.c.
|
|
f38364b3
|
2010-09-19T10:42:36
|
|
Fix symbol prefix for ffi_closure_SYSV_inner on Darwin.
|
|
36849e77
|
2010-09-19T09:35:04
|
|
Whitespace/comment fixes.
|
|
9af9291b
|
2010-09-19T08:52:33
|
|
Add the trampoline table generated by gentramp.sh
|
|
68ce0c38
|
2010-09-19T08:38:19
|
|
Add a shell script that generates the ARM trampoline page.
This generates a page of 340 trampolines, aligned within one page. The
trampolines use pc-relative addressing to reference config data
(context, jump address) from a page placed directly prior to the
trampoline page. This can be used on systems -- such as iOS -- that do not
support writable, executable memory by remapping the executable page
containing the trampolines directly above a newly allocated writable
config page.
|
|
70150bdf
|
2010-09-18T16:38:03
|
|
Add missing UNWIND entry; disables .pad on non-EABI targets.
|
|
6b452baf
|
2010-09-18T16:21:32
|
|
Apple assembler support; fixed most gas/ELF-isms.
|
|
8ddac835
|
2010-09-18T15:38:06
|
|
Fix placement of the __APPLE__ macro.
|
|
69043d02
|
2010-09-18T15:32:08
|
|
Work-around libffi's FP ABI detection.
On iOS, we must use the AAPCS floating point return value calling
conventions. libffi's ARM implementation will only use these conventions
if __SOFTFP__ is defined, which is not the case when GCC's
-mfloat-abi defaults to 'softfp' instead of 'soft'. To work around this
we manually define __SOFTFP__ for Apple platforms in the ARM-specific
sysv.S.
See also:
http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Introduction/Introduction.html
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
|
|
d14178be
|
2010-07-23T09:14:00
|
|
FFI_LAST_ABI fix
|
|
3f5b1375
|
2010-07-12T14:39:18
|
|
rebase
|
|
9dc9a293
|
2010-04-13T10:33:52
|
|
Rebase to latest GCC sources
|
|
7b7a42f2
|
2010-01-12T09:14:14
|
|
Rebase from GCC
|
|
c3042afa
|
2010-01-01T08:08:02
|
|
Reset quilt patches post 3.0.9 merge with GCC
|
|
0cfe60e9
|
2009-12-29T10:06:04
|
|
3.0.9rc12
|
|
9458d88f
|
2009-12-26T07:02:27
|
|
Rebase from GCC
|
|
da11bece
|
2009-12-24T05:34:46
|
|
Release 3.0.9rc5
|
|
115ab36f
|
2009-12-24T00:22:00
|
|
Update missing changes for 3.0.9r4.
|
|
c6dddbd0
|
2009-10-04T08:11:33
|
|
Initial commit
|