From 99444711eb29bad45ee68377af044e4a4568a217 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 26 Mar 2000 20:33:04 +0000 Subject: [multiple changes] 2000-03-26 Tom Tromey * 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 * 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 --- libjava/include/default-signal.h | 4 ++-- libjava/include/java-cpool.h | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'libjava/include') diff --git a/libjava/include/default-signal.h b/libjava/include/default-signal.h index 56d1cc2..0fb3d7d 100644 --- a/libjava/include/default-signal.h +++ b/libjava/include/default-signal.h @@ -13,8 +13,8 @@ details. */ #ifdef SJLJ_EXCEPTIONS -#define HANDLE_SEGV -#define HANDLE_FPE +#define HANDLE_SEGV 1 +#define HANDLE_FPE 1 #include 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 } -- cgit v1.1