Update missing changes for 3.0.9r4.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
10
|
||||
|
||||
dir
|
||||
152280
|
||||
svn://gcc.gnu.org/svn/gcc/trunk/libffi/src/mips
|
||||
svn://gcc.gnu.org/svn/gcc
|
||||
155449
|
||||
svn+ssh://green@gcc.gnu.org/svn/gcc/trunk/libffi/src/mips
|
||||
svn+ssh://green@gcc.gnu.org/svn/gcc
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ file
|
||||
|
||||
|
||||
|
||||
2009-09-16T16:25:59.000000Z
|
||||
2009-12-20T06:01:55.707555Z
|
||||
fdf13476bd3e53815092fde3494d8fc9
|
||||
2009-09-15T17:15:33.045042Z
|
||||
151726
|
||||
@@ -66,7 +66,7 @@ file
|
||||
|
||||
|
||||
|
||||
2009-09-16T16:25:59.000000Z
|
||||
2009-12-20T06:01:55.708555Z
|
||||
142328c284156e2c2ea05bbcbf19a163
|
||||
2009-09-15T17:15:33.045042Z
|
||||
151726
|
||||
@@ -100,7 +100,7 @@ file
|
||||
|
||||
|
||||
|
||||
2009-06-10T05:25:03.000000Z
|
||||
2009-12-20T06:01:55.709555Z
|
||||
46fc9e546cfb341f1ebf869bed97ebd4
|
||||
2009-06-04T15:11:12.475454Z
|
||||
148171
|
||||
@@ -134,7 +134,7 @@ file
|
||||
|
||||
|
||||
|
||||
2009-09-16T16:25:59.000000Z
|
||||
2009-12-20T06:01:55.709555Z
|
||||
8ab6839e93489a8417539b6953934de1
|
||||
2009-09-15T17:15:33.045042Z
|
||||
151726
|
||||
|
||||
@@ -625,7 +625,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
|
||||
{
|
||||
rvalue_copy = alloca (8);
|
||||
copy_rvalue = 1;
|
||||
#ifdef __MIPSEB__
|
||||
#if defined(__MIPSEB__) || defined(_MIPSEB)
|
||||
copy_offset = 4;
|
||||
#endif
|
||||
}
|
||||
@@ -772,9 +772,10 @@ ffi_closure_mips_inner_O32 (ffi_closure *closure,
|
||||
{
|
||||
if (i < 2 && !seen_int &&
|
||||
(arg_types[i]->type == FFI_TYPE_FLOAT ||
|
||||
arg_types[i]->type == FFI_TYPE_DOUBLE))
|
||||
arg_types[i]->type == FFI_TYPE_DOUBLE ||
|
||||
arg_types[i]->type == FFI_TYPE_LONGDOUBLE))
|
||||
{
|
||||
#ifdef __MIPSEB__
|
||||
#if defined(__MIPSEB__) || defined(_MIPSEB)
|
||||
if (arg_types[i]->type == FFI_TYPE_FLOAT)
|
||||
avaluep[i] = ((char *) &fpr[i]) + sizeof (float);
|
||||
else
|
||||
@@ -931,10 +932,16 @@ ffi_closure_mips_inner_N32 (ffi_closure *closure,
|
||||
while (i < avn)
|
||||
{
|
||||
if (arg_types[i]->type == FFI_TYPE_FLOAT
|
||||
|| arg_types[i]->type == FFI_TYPE_DOUBLE)
|
||||
|| arg_types[i]->type == FFI_TYPE_DOUBLE
|
||||
|| arg_types[i]->type == FFI_TYPE_LONGDOUBLE)
|
||||
{
|
||||
argp = (argn >= 8 || soft_float) ? ar + argn : fpr + argn;
|
||||
#ifdef __MIPSEB__
|
||||
if ((arg_types[i]->type == FFI_TYPE_LONGDOUBLE) && ((unsigned)argp & (arg_types[i]->alignment-1)))
|
||||
{
|
||||
argp=(ffi_arg*)ALIGN(argp,arg_types[i]->alignment);
|
||||
argn++;
|
||||
}
|
||||
#if defined(__MIPSEB__) || defined(_MIPSEB)
|
||||
if (arg_types[i]->type == FFI_TYPE_FLOAT && argn < 8)
|
||||
avaluep[i] = ((char *) argp) + sizeof (float);
|
||||
else
|
||||
|
||||
@@ -28,7 +28,10 @@
|
||||
#define LIBFFI_TARGET_H
|
||||
|
||||
#ifdef linux
|
||||
#include <asm/sgidefs.h>
|
||||
# include <asm/sgidefs.h>
|
||||
#else
|
||||
# include <sgidefs.h>
|
||||
#endif
|
||||
# ifndef _ABIN32
|
||||
# define _ABIN32 _MIPS_SIM_NABI32
|
||||
# endif
|
||||
@@ -38,7 +41,6 @@
|
||||
# ifndef _ABIO32
|
||||
# define _ABIO32 _MIPS_SIM_ABI32
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !defined(_MIPS_SIM)
|
||||
-- something is very wrong --
|
||||
@@ -154,7 +156,8 @@
|
||||
# endif /* _MIPS_SIM==_ABI64 */
|
||||
#endif /* !FFI_MIPS_O32 */
|
||||
#else /* !LIBFFI_ASM */
|
||||
#ifdef FFI_MIPS_O32
|
||||
# ifdef __GNUC__
|
||||
# ifdef FFI_MIPS_O32
|
||||
/* O32 stack frames have 32bit integer args */
|
||||
typedef unsigned int ffi_arg __attribute__((__mode__(__SI__)));
|
||||
typedef signed int ffi_sarg __attribute__((__mode__(__SI__)));
|
||||
@@ -162,7 +165,18 @@ typedef signed int ffi_sarg __attribute__((__mode__(__SI__)));
|
||||
/* N32 and N64 frames have 64bit integer args */
|
||||
typedef unsigned int ffi_arg __attribute__((__mode__(__DI__)));
|
||||
typedef signed int ffi_sarg __attribute__((__mode__(__DI__)));
|
||||
#endif
|
||||
# endif
|
||||
# else
|
||||
# ifdef FFI_MIPS_O32
|
||||
/* O32 stack frames have 32bit integer args */
|
||||
typedef __uint32_t ffi_arg;
|
||||
typedef __int32_t ffi_sarg;
|
||||
# else
|
||||
/* N32 and N64 frames have 64bit integer args */
|
||||
typedef __uint64_t ffi_arg;
|
||||
typedef __int64_t ffi_sarg;
|
||||
# endif
|
||||
# endif /* __GNUC__ */
|
||||
|
||||
typedef enum ffi_abi {
|
||||
FFI_FIRST_ABI = 0,
|
||||
|
||||
@@ -40,7 +40,9 @@
|
||||
|
||||
#define SIZEOF_FRAME ( 8 * FFI_SIZEOF_ARG )
|
||||
|
||||
#ifdef linux
|
||||
.abicalls
|
||||
#endif
|
||||
.text
|
||||
.align 2
|
||||
.globl ffi_call_N32
|
||||
@@ -527,6 +529,7 @@ cls_epilogue:
|
||||
.LFE2:
|
||||
.end ffi_closure_N32
|
||||
|
||||
#ifdef linux
|
||||
.section .eh_frame,"aw",@progbits
|
||||
.Lframe1:
|
||||
.4byte .LECIE1-.LSCIE1 # length
|
||||
@@ -583,5 +586,6 @@ cls_epilogue:
|
||||
.uleb128 (SIZEOF_FRAME2 - RA_OFF2)/4
|
||||
.align EH_FRAME_ALIGN
|
||||
.LEFDE3:
|
||||
#endif /* linux */
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user