ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already defined.

2007-12-06  David Daney  <ddaney@avtrex.com>

	* include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not	already
	defined.
	(ffi_java_raw): New typedef.
	(ffi_java_raw_call, ffi_java_ptrarray_to_raw,
	ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
	ffi_java_raw.
	(ffi_java_raw_closure) : Same.
	(ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
	parameter types.
	* src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
	FFI_SIZEOF_JAVA_RAW.
	(ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
	Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
	sizeof(ffi_java_raw) for alignment calculations.
	(ffi_java_ptrarray_to_raw): Same.
	(ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
        if FFI_SIZEOF_JAVA_RAW == 4.
	(ffi_java_raw_to_rvalue): Same.
	(ffi_java_raw_call): Change type of raw to ffi_java_raw.
	(ffi_java_translate_args): Same.
	(ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
	parameter types.
	* src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.

2007-12-06  David Daney  <ddaney@avtrex.com>

	* interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
	(ncode_closure, ffi_closure_fun): Define versions for
	non-FFI_NATIVE_RAW_API case.
	* include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
	replace	ffi_raw throughout.
	* jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
	throughout.

From-SVN: r130660
This commit is contained in:
David Daney 2007-12-06 22:02:22 +00:00 committed by David Daney
parent 6af5d898a5
commit 4c42b3d84f
9 changed files with 170 additions and 64 deletions

View file

@ -222,18 +222,26 @@ class _Jv_InterpMethod : public _Jv_MethodBase
void *ncode (jclass);
void compile (const void * const *);
static void run_normal (ffi_cif*, void*, ffi_raw*, void*);
static void run_synch_object (ffi_cif*, void*, ffi_raw*, void*);
static void run_class (ffi_cif*, void*, ffi_raw*, void*);
static void run_synch_class (ffi_cif*, void*, ffi_raw*, void*);
static void run_normal_debug (ffi_cif*, void*, ffi_raw*, void*);
static void run_synch_object_debug (ffi_cif*, void*, ffi_raw*, void*);
static void run_class_debug (ffi_cif*, void*, ffi_raw*, void*);
static void run_synch_class_debug (ffi_cif*, void*, ffi_raw*, void*);
#if FFI_NATIVE_RAW_API
# define INTERP_FFI_RAW_TYPE ffi_raw
#else
# define INTERP_FFI_RAW_TYPE ffi_java_raw
#endif
static void run (void *, ffi_raw *, _Jv_InterpMethod *);
static void run_debug (void *, ffi_raw *, _Jv_InterpMethod *);
static void run_normal (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_object (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_normal_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_object_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*,
void*);
static void run_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
static void run_synch_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*,
void*);
static void run (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *);
static void run_debug (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *);
@ -361,7 +369,7 @@ class _Jv_JNIMethod : public _Jv_MethodBase
ffi_type **jni_arg_types;
// This function is used when making a JNI call from the interpreter.
static void call (ffi_cif *, void *, ffi_raw *, void *);
static void call (ffi_cif *, void *, INTERP_FFI_RAW_TYPE *, void *);
void *ncode (jclass);