diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-01-20 04:18:12 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-01-20 04:18:12 +0000 |
commit | 75c08f99836ec24735e2234600f165406ceba2aa (patch) | |
tree | 9e23286cabfbef3477b1c28bad1e9482f4b6efb2 /libgo/runtime | |
parent | 69834ed91f49e3b391ef47e81c34a033519c76c5 (diff) | |
download | gcc-75c08f99836ec24735e2234600f165406ceba2aa.tar.gz |
runtime: No special case for 386 complex in FFI support.
All supported libgo 386 targets now have complex support in
libffi.
From Uros Bizjak.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219877 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo/runtime')
-rw-r--r-- | libgo/runtime/go-ffi.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/libgo/runtime/go-ffi.c b/libgo/runtime/go-ffi.c index 89da23dab1b..aafc7b205e0 100644 --- a/libgo/runtime/go-ffi.c +++ b/libgo/runtime/go-ffi.c @@ -289,21 +289,7 @@ go_func_return_ffi (const struct __go_func_type *func) types = (const struct __go_type_descriptor **) func->__out.__values; if (count == 1) - { - -#if defined (__i386__) && !defined (__x86_64__) - /* FFI does not support complex types. On 32-bit x86, a - complex64 will be returned in %eax/%edx. We normally tell - FFI that a complex64 is a struct of two floats. On 32-bit - x86 a struct of two floats is returned via a hidden first - pointer parameter. Fortunately we can make everything work - by pretending that complex64 is int64. */ - if ((types[0]->__code & GO_CODE_MASK) == GO_COMPLEX64) - return &ffi_type_sint64; -#endif - - return go_type_to_ffi (types[0]); - } + return go_type_to_ffi (types[0]); ret = (ffi_type *) __go_alloc (sizeof (ffi_type)); ret->type = FFI_TYPE_STRUCT; |