|
fa5f25c2
|
2014-01-04T19:00:08
|
|
Linux/ppc64: Remove assumption on contents of r11 in closure
|
|
ab79d6e2
|
2013-11-21T06:12:35
|
|
This separates the 32-bit sysv/linux/bsd code from the 64-bit linux
code, and makes it possible to link code compiled with different
options to those used to compile libffi. For example, a
-mlong-double-128 libffi can be used with -mlong-double-64 code.
Using the return value area as a place to pass parameters wasn't such
a good idea, causing a failure of cls_ulonglong.c. I didn't see this
when running the mainline gcc libffi testsuite because that version of
the test is inferior to the upstreamm libffi test.
Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant
that a parameter save area could be allocated before it was strictly
necessary. Wrong but harmless. Found when splitting apart ffi.c
into 32-bit and 64-bit support.
|
|
ac753688
|
2013-11-21T06:12:35
|
|
This separates the 32-bit sysv/linux/bsd code from the 64-bit linux
code, and makes it possible to link code compiled with different
options to those used to compile libffi. For example, a
-mlong-double-128 libffi can be used with -mlong-double-64 code.
Using the return value area as a place to pass parameters wasn't such
a good idea, causing a failure of cls_ulonglong.c. I didn't see this
when running the mainline gcc libffi testsuite because that version of
the test is inferior to the upstreamm libffi test.
Using NUM_FPR_ARG_REGISTERS rather than NUM_FPR_ARG_REGISTERS64 meant
that a parameter save area could be allocated before it was strictly
necessary. Wrong but harmless. Found when splitting apart ffi.c
into 32-bit and 64-bit support.
|
|
aa1f62c0
|
2013-11-18T13:11:56
|
|
Fix PowerPC Darwin FDE encodings to use pcrel correctly. Modernise the picbase labels.
|
|
16d56c51
|
2013-11-18T06:36:03
|
|
An #endif in the wrong place would cause compile failure on powerpcle.
Using bl instead of b doesn't cause runtime failures as you might think,
but does mess the processor branch prediction.
|
|
83f65b63
|
2013-11-16T06:53:50
|
|
Finally, this adds _CALL_ELF == 2 support. ELFv1 objects can't be
linked with ELFv2 objects, so this is one case where preprocessor
tests in ffi.c are fine. Also, there is no need to define a new
FFI_ELFv2 or somesuch value in enum ffi_abi. FFI_LINUX64 will happily
serve both ABIs.
|
|
1fd04578
|
2013-11-16T06:53:50
|
|
Finally, this adds _CALL_ELF == 2 support. ELFv1 objects can't be
linked with ELFv2 objects, so this is one case where preprocessor
tests in ffi.c are fine. Also, there is no need to define a new
FFI_ELFv2 or somesuch value in enum ffi_abi. FFI_LINUX64 will happily
serve both ABIs.
|
|
36285137
|
2013-11-16T06:52:43
|
|
Andreas' 2013-02-08 change reverted some breakage for struct return
values from 2011-11-12, but in so doing reintroduced string
instructions to sysv.S that are not supported on all powerpc variants.
This patch properly copies the bounce buffer to destination in C code
rather than in asm.
I have tested this on powerpc64-linux, powerpc-linux and
powerpc-freebsd. Well, the last on powerpc-linux by lying to
configure with
CC="gcc -m32 -msvr4-struct-return -mlong-double-64" \
CXX="g++ -m32 -msvr4-struct-return -mlong-double-64" \
/src/libffi-current/configure --build=powerpc-freebsd
and then
make && make CC="gcc -m32" CXX="g++ -m32" \
RUNTESTFLAGS=--target_board=unix/-m32/-msvr4-struct-return/-mlong-double-64\
check
|
|
1c06515d
|
2013-11-16T06:41:36
|
|
The powerpc64 ABIs align structs passed by value, a fact ignored by
gcc for quite some time. Since gcc now does the correct alignment,
libffi needs to follow suit. This ought to be made selectable via
a new abi value, and the #ifdefs removed from ffi.c along with many
other #ifdefs present there and in assembly. I'll do that with a
followup patch sometime.
This is a revised version of
https://sourceware.org/ml/libffi-discuss/2013/msg00162.html
|
|
a97cf1fa
|
2013-11-16T06:40:13
|
|
This patch prepares for ELFv2, where sizes of these areas change. It
also makes some minor changes to improve code efficiency.
|
|
164283f4
|
2013-11-16T06:38:55
|
|
The powerpc64 support opted to pass floating point values both in the
fpr area and the parameter save area, necessary when the backend
doesn't know if a function argument corresponds to the ellipsis
arguments of a variadic function. This patch adds powerpc support for
variadic functions, and changes the code to only pass fp in the ABI
mandated area. ELFv2 needs this change since the parameter save area
may not exist there.
This also fixes two faulty tests that used a non-variadic function
cast to call a variadic function, and spuriously reasoned that this is
somehow necessary for static functions..
|
|
128cd1d2
|
2013-10-08T06:45:51
|
|
Fix spelling errors
|
|
d3d099b4
|
2013-07-02T16:11:38
|
|
little-endian ppc64 support
|
|
4acf0056
|
2013-03-16T08:18:45
|
|
Build fix for soft-float power targets
|
|
70b11b47
|
2013-02-08T16:12:19
|
|
Fix small struct passing on ppc
|
|
8bd15d13
|
2013-02-08T13:56:37
|
|
Fix many.c testcase for ppc
|
|
05fbe1fa
|
2013-01-11T16:54:40
|
|
xlc compiler support
|
|
f6b58d2b
|
2012-11-22T16:26:21
|
|
fix build on ppc when long double == double
|
|
dfadfb19
|
2012-10-31T06:46:41
|
|
Rebase for ppc64 fix
|
|
853cc722
|
2012-04-10T06:33:33
|
|
Fix typo for darwin targets
|
|
65f40c35
|
2012-04-03T07:35:59
|
|
Repair ppc build regression.
|
|
bd78c9c3
|
2012-03-21T08:09:30
|
|
More cygwin fixes
|
|
84d3253f
|
2012-03-19T23:07:35
|
|
Rebase post GCC merge
|
|
8360bf1c
|
2012-02-23T07:01:13
|
|
Ensure that users don't include ffitarget.h directly
|
|
ea14ae85
|
2011-11-12T16:36:59
|
|
clean up
|
|
52891f8a
|
2011-11-12T16:35:55
|
|
Add powerpc soft float support
|
|
af18df2b
|
2011-11-12T15:52:08
|
|
Remove use of ppc string instructions
|
|
3d56106b
|
2011-11-12T07:20:24
|
|
Rebase
|
|
2d3fb364
|
2011-03-30T16:54:42
|
|
Fix darwin EH
|
|
18dd85d6
|
2011-02-25T16:23:04
|
|
rc8. fix last patch.
|
|
74ee6ea8
|
2011-02-25T15:52:14
|
|
rc7. More AIX fixes.
|
|
2541679d
|
2011-02-25T15:09:13
|
|
Fix ppc32 bug
|
|
1fbf9dc4
|
2011-02-13T08:06:39
|
|
Fix bad_abi test. rc5.
|
|
6972a4ff
|
2011-02-11T07:32:51
|
|
Fix xlc build on AIX
|
|
19ce7131
|
2011-02-08T10:34:23
|
|
grammar fix
|
|
0e584399
|
2011-02-08T07:52:40
|
|
Refresh from GCC
|
|
2db72615
|
2010-11-21T10:50:56
|
|
Rebase
|
|
5feacad4
|
2010-08-05T08:30:04
|
|
define generic symbols carefully
|
|
3f5b1375
|
2010-07-12T14:39:18
|
|
rebase
|
|
9dc9a293
|
2010-04-13T10:33:52
|
|
Rebase to latest GCC sources
|
|
f2c2a4fc
|
2010-04-13T10:19:28
|
|
Remove warnings and add OS/2 support
|
|
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
|
|
2e7e03d0
|
2009-12-31T07:43:22
|
|
Final updates before 3.0.9
|
|
aea706c5
|
2009-12-29T10:09:31
|
|
really 3.0.9rc12
|
|
0cfe60e9
|
2009-12-29T10:06:04
|
|
3.0.9rc12
|
|
9458d88f
|
2009-12-26T07:02:27
|
|
Rebase from GCC
|
|
6a341241
|
2009-12-26T06:51:33
|
|
Add Andreas Schwab's powerpc fix
|
|
da11bece
|
2009-12-24T05:34:46
|
|
Release 3.0.9rc5
|
|
115ab36f
|
2009-12-24T00:22:00
|
|
Update missing changes for 3.0.9r4.
|
|
cd98813d
|
2009-10-05T00:25:29
|
|
From Jens Rehsack. Fix for 64-bit AIX.
|
|
c6dddbd0
|
2009-10-04T08:11:33
|
|
Initial commit
|