diff options
| author | Jing Yu <jingyu@google.com> | 2010-07-22 14:03:48 -0700 |
|---|---|---|
| committer | Jing Yu <jingyu@google.com> | 2010-07-22 14:03:48 -0700 |
| commit | b094d6c4bf572654a031ecc4afe675154c886dc5 (patch) | |
| tree | 89394c56b05e13a5413ee60237d65b0214fd98e2 /gcc-4.4.3/libjava/include/java-cpool.h | |
| parent | dc34721ac3bf7e3c406fba8cfe9d139393345ec5 (diff) | |
| download | toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.tar.gz toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.tar.bz2 toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.zip | |
commit gcc-4.4.3 which is used to build gcc-4.4.3 Android toolchain in master.
The source is based on fsf gcc-4.4.3 and contains local patches which
are recorded in gcc-4.4.3/README.google.
Change-Id: Id8c6d6927df274ae9749196a1cc24dbd9abc9887
Diffstat (limited to 'gcc-4.4.3/libjava/include/java-cpool.h')
| -rw-r--r-- | gcc-4.4.3/libjava/include/java-cpool.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/gcc-4.4.3/libjava/include/java-cpool.h b/gcc-4.4.3/libjava/include/java-cpool.h new file mode 100644 index 000000000..412250230 --- /dev/null +++ b/gcc-4.4.3/libjava/include/java-cpool.h @@ -0,0 +1,134 @@ +// 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 <gcj/javaprims.h> + +// 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_LazyFlag (32L) +#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__ */ |
