aboutsummaryrefslogtreecommitdiff
path: root/libjava/resolve.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@gcc.gnu.org>2000-03-26 20:33:04 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-03-26 20:33:04 +0000
commit99444711eb29bad45ee68377af044e4a4568a217 (patch)
tree316c5bb1d7d3464e8a5a904b6040f521f3b9a97f /libjava/resolve.cc
parent71c9404e8b052c072f44a55e1c85014a031d7611 (diff)
downloadgcc-99444711eb29bad45ee68377af044e4a4568a217.zip
gcc-99444711eb29bad45ee68377af044e4a4568a217.tar.gz
gcc-99444711eb29bad45ee68377af044e4a4568a217.tar.bz2
[multiple changes]
2000-03-26 Tom Tromey <tromey@cygnus.com> * java/lang/mprec.h: Use SIZEOF_VOID_P. * interpret.cc: Use SIZEOF_VOID_P. * include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P. (_Jv_loadLong): Likewise. (_Jv_storeDouble): Likewise. * configure: Rebuilt. * configure.in: Check size of void*. * resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE. 2000-03-26 Hans Boehm <boehm@acm.org> * include/java-cpool.h (_Jv_storeLong, _Jv_loadLong, _Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit machine. * java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN appropriately on IA64. * java/lang/mprec.h: Don't define Pack_32 on 64 bit machine. * javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit case. * resolve.cc (FFI_PREP_RAW_CLOSURE): New define. (FFI_RAW_SIZE): Likewise. (_Jv_InterpMethod::ncode): Use them. * interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL, STORED): Define differently on a 64 bit machine. (continue1): Use ffi_java_raw_call when appropriate. From-SVN: r32754
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r--libjava/resolve.cc21
1 files changed, 14 insertions, 7 deletions
diff --git a/libjava/resolve.cc b/libjava/resolve.cc
index c0f51c9..ab1fafb 100644
--- a/libjava/resolve.cc
+++ b/libjava/resolve.cc
@@ -1045,6 +1045,13 @@ init_cif (_Jv_Utf8Const* signature,
return item_count;
}
+#if FFI_NATIVE_RAW_API
+# define FFI_PREP_RAW_CLOSURE ffi_prep_raw_closure
+# define FFI_RAW_SIZE ffi_raw_size
+#else
+# define FFI_PREP_RAW_CLOSURE ffi_prep_java_raw_closure
+# define FFI_RAW_SIZE ffi_java_raw_size
+#endif
/* we put this one here, and not in interpret.cc because it
* calls the utility routines count_arguments
@@ -1083,7 +1090,7 @@ _Jv_InterpMethod::ncode ()
ffi_closure_fun fun;
- args_raw_size = ffi_raw_size (&closure->cif);
+ args_raw_size = FFI_RAW_SIZE (&closure->cif);
JvAssert ((self->accflags & Modifier::NATIVE) == 0);
@@ -1099,10 +1106,10 @@ _Jv_InterpMethod::ncode ()
fun = (ffi_closure_fun)&_Jv_InterpMethod::run_normal;
}
- ffi_prep_raw_closure (&closure->closure,
- &closure->cif,
- fun,
- (void*) this);
+ FFI_PREP_RAW_CLOSURE (&closure->closure,
+ &closure->cif,
+ fun,
+ (void*)this);
self->ncode = (void*)closure;
return self->ncode;
@@ -1134,7 +1141,7 @@ _Jv_JNIMethod::ncode ()
ffi_closure_fun fun;
- args_raw_size = ffi_raw_size (&closure->cif);
+ args_raw_size = FFI_RAW_SIZE (&closure->cif);
// Initialize the argument types and CIF that represent the actual
// underlying JNI function.
@@ -1161,7 +1168,7 @@ _Jv_JNIMethod::ncode ()
// interpreted code use JNI.
fun = (ffi_closure_fun) &_Jv_JNIMethod::call;
- ffi_prep_raw_closure (&closure->closure,
+ FFI_PREP_RAW_CLOSURE (&closure->closure,
&closure->cif,
fun,
(void*) this);