summaryrefslogtreecommitdiffstats
path: root/libjava/gcj
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-26 20:33:04 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-03-26 20:33:04 +0000
commit02ddd4c0408d678a216bde8231e93a5b6f8e0d47 (patch)
tree316c5bb1d7d3464e8a5a904b6040f521f3b9a97f /libjava/gcj
parent246d629b7c6b4563bfb5948573defcd8f8daefbb (diff)
downloadppe42-gcc-02ddd4c0408d678a216bde8231e93a5b6f8e0d47.tar.gz
ppe42-gcc-02ddd4c0408d678a216bde8231e93a5b6f8e0d47.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32754 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gcj')
-rw-r--r--libjava/gcj/javaprims.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h
index d2af32e2cb6..4216b4c0a98 100644
--- a/libjava/gcj/javaprims.h
+++ b/libjava/gcj/javaprims.h
@@ -285,7 +285,16 @@ typedef union {
jint ia[1]; // Half of _Jv_word2.
void* p;
- // these are things we will store in the constant
+ // We use __LP64__ and not SIZEOF_VOID_P here because we want
+ // something that will be predefined by the compiler. FIXME -- this
+ // definition probably shouldn't appear here anyway.
+#ifdef __LP64__
+ // We can safely put a long or a double in here without increasing
+ // the size of _Jv_Word; we take advantage of this in the interpreter.
+ jlong l;
+ jdouble d;
+#endif
+
jclass clazz;
jstring string;
struct _Jv_Field *field;
OpenPOWER on IntegriCloud