From df62c1c110e8532b995b23540b7e3695729c0779 Mon Sep 17 00:00:00 2001 From: Jing Yu Date: Thu, 5 Nov 2009 15:11:04 -0800 Subject: Check in gcc sources for prebuilt toolchains in Eclair. --- gcc-4.2.1/libjava/include/java-cpool.h | 133 +++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 gcc-4.2.1/libjava/include/java-cpool.h (limited to 'gcc-4.2.1/libjava/include/java-cpool.h') diff --git a/gcc-4.2.1/libjava/include/java-cpool.h b/gcc-4.2.1/libjava/include/java-cpool.h new file mode 100644 index 000000000..c636e4c6b --- /dev/null +++ b/gcc-4.2.1/libjava/include/java-cpool.h @@ -0,0 +1,133 @@ +// java-cpool.h - Constant pool parsing header. -*- c++ -*- + +/* Copyright (C) 1999, 2000 Free Software Foundation + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +#ifndef __JAVA_CPOOL_H__ +#define __JAVA_CPOOL_H__ + +#include + +// we rename these, to avoid polluting the name space +#define JV_CONSTANT_Undefined (0L) +#define JV_CONSTANT_Utf8 (1L) +#define JV_CONSTANT_Unicode (2L) +#define JV_CONSTANT_Integer (3L) +#define JV_CONSTANT_Float (4L) +#define JV_CONSTANT_Long (5L) +#define JV_CONSTANT_Double (6L) +#define JV_CONSTANT_Class (7L) +#define JV_CONSTANT_String (8L) +#define JV_CONSTANT_Fieldref (9L) +#define JV_CONSTANT_Methodref (10L) +#define JV_CONSTANT_InterfaceMethodref (11L) +#define JV_CONSTANT_NameAndType (12L) +#define JV_CONSTANT_ResolvedFlag (16L) +#define JV_CONSTANT_ResolvedString (16L | 8L) +#define JV_CONSTANT_ResolvedClass (16L | 7L) + +extern inline void +_Jv_storeIndexes (_Jv_word *data, + _Jv_ushort index0, + _Jv_ushort index1) +{ + data->i = (((jint)index0) << 16) | (jint) index1; +} + +extern inline void +_Jv_loadIndexes (const _Jv_word *data, + _Jv_ushort& index0, + _Jv_ushort& index1) +{ + jint udata = data->i; + + _Jv_uint uindex0 = ((udata >> 16) & 0xffff); + _Jv_uint uindex1 = udata & 0xffff; + + index0 = uindex0; + index1 = uindex1; +} + +extern inline void +_Jv_storeFloat (_Jv_word *data, jfloat f) +{ + data->f = f; +} + +extern inline jfloat +_Jv_loadFloat (_Jv_word *data) +{ + return data->f; +} + +extern inline void +_Jv_storeInt (_Jv_word *data, jint i) +{ + data->i = i; +} + +extern inline jint +_Jv_loadInt (_Jv_word *data) +{ + return data->i; +} + +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 +} + + +#endif /* __JAVA_CPOOL_H__ */ -- cgit v1.2.3