diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 2000-03-26 20:33:04 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-03-26 20:33:04 +0000 |
commit | 99444711eb29bad45ee68377af044e4a4568a217 (patch) | |
tree | 316c5bb1d7d3464e8a5a904b6040f521f3b9a97f /libjava/include/java-cpool.h | |
parent | 71c9404e8b052c072f44a55e1c85014a031d7611 (diff) | |
download | gcc-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/include/java-cpool.h')
-rw-r--r-- | libjava/include/java-cpool.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/libjava/include/java-cpool.h b/libjava/include/java-cpool.h index 602de28..c636e4c 100644 --- a/libjava/include/java-cpool.h +++ b/libjava/include/java-cpool.h @@ -1,6 +1,6 @@ // java-cpool.h - Constant pool parsing header. -*- c++ -*- -/* Copyright (C) 1999 Free Software Foundation +/* Copyright (C) 1999, 2000 Free Software Foundation This file is part of libgcj. @@ -80,37 +80,53 @@ _Jv_loadInt (_Jv_word *data) extern inline void _Jv_storeLong (_Jv_word *data, jlong l) { +#if SIZEOF_VOID_P == 8 + data[0].l = l; +#else _Jv_word2 tmp; tmp.l = l; data[0].ia[0] = tmp.ia[0]; data[1].ia[0] = tmp.ia[1]; +#endif } extern inline jlong _Jv_loadLong (_Jv_word *data) { +#if SIZEOF_VOID_P == 8 + return data -> l; +#else _Jv_word2 tmp; tmp.ia[0] = data[0].ia[0]; tmp.ia[1] = data[1].ia[0]; return tmp.l; +#endif } extern inline void _Jv_storeDouble (_Jv_word *data, jdouble d) { +#if SIZEOF_VOID_P == 8 + data[0].d = d; +#else _Jv_word2 tmp; tmp.d = d; data[0].ia[0] = tmp.ia[0]; data[1].ia[0] = tmp.ia[1]; +#endif } extern inline jdouble _Jv_loadDouble (_Jv_word *data) { +#if SIZEOF_VOID_P == 8 + return data -> d; +#else _Jv_word2 tmp; tmp.ia[0] = data[0].ia[0]; tmp.ia[1] = data[1].ia[0]; return tmp.d; +#endif } |