Commit a6404080 by Jakub Jelinek Committed by Jakub Jelinek

javaop.h (int16, [...]): Define to exactly 16 (resp.

	* javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
	bit wide type.
	(jword): Define to uint64 on 64-bit arches.
	* jcf-dump.c (print_constant): Cast JPOOL_UINT to long.

From-SVN: r114191
parent 5139e1e9
2006-05-29 Jakub Jelinek <jakub@redhat.com>
* javaop.h (int16, int32, int64): Define to exactly 16 (resp. 32, 64)
bit wide type.
(jword): Define to uint64 on 64-bit arches.
* jcf-dump.c (print_constant): Cast JPOOL_UINT to long.
2006-05-28 Kazu Hirata <kazu@codesourcery.com> 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
* class.c, except.c, expr.c, java-gimplify.c: Fix comment * class.c, except.c, expr.c, java-gimplify.c: Fix comment
......
...@@ -30,18 +30,40 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ ...@@ -30,18 +30,40 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
typedef unsigned char uint8; typedef unsigned char uint8;
#ifndef int16 #ifndef int16
#if __SHRT_MAX__ == 32767
#define int16 short #define int16 short
#elif __INT_MAX__ == 32767
#define int16 int
#elif __LONG_MAX__ == 32767
#define int16 long
#else
#define int16 short
#endif
#endif #endif
typedef unsigned int16 uint16; typedef unsigned int16 uint16;
#ifndef int32 #ifndef int32
#if __INT_MAX__ == 2147483647
#define int32 int
#elif __LONG_MAX__ == 2147483647
#define int32 long #define int32 long
#elif __SHRT_MAX__ == 2147483647
#define int32 short
#else
#define int32 int
#endif
#endif #endif
typedef unsigned int32 uint32; typedef unsigned int32 uint32;
/* A signed 64-bit (or more) integral type, suitable for Java's 'long'. */ /* A signed 64-bit (or more) integral type, suitable for Java's 'long'. */
#ifndef int64 #ifndef int64
#if __LONG_MAX__ == 9223372036854775807LL
#define int64 long
#elif __LONG_LONG_MAX__ == 9223372036854775807LL
#define int64 long long #define int64 long long
#else
#define int64 long long
#endif
#endif #endif
/* An unsigned 64-bit (or more) integral type, same length as int64. */ /* An unsigned 64-bit (or more) integral type, same length as int64. */
#ifndef uint64 #ifndef uint64
...@@ -82,8 +104,15 @@ typedef struct _jdouble { ...@@ -82,8 +104,15 @@ typedef struct _jdouble {
#ifndef jword #ifndef jword
#if defined (__LP64__) || defined (__alpha__) || defined (__MMIX__) \
|| (defined (_ARCH_PPC) && defined (__64BIT__)) \
|| defined (__powerpc64__) || defined (__s390x__) || defined (__x86_64__) \
|| defined (__sparcv9) || (defined (__sparc__) && defined (__arch64__))
#define jword uint64
#else
#define jword uint32 #define jword uint32
#endif #endif
#endif
#ifndef IMMEDIATE_u1 #ifndef IMMEDIATE_u1
#define IMMEDIATE_u1 (PC++, CHECK_PC_IN_RANGE(PC), BCODE[PC-1]) #define IMMEDIATE_u1 (PC++, CHECK_PC_IN_RANGE(PC), BCODE[PC-1])
......
...@@ -574,7 +574,7 @@ print_constant (FILE *out, JCF *jcf, int index, int verbosity) ...@@ -574,7 +574,7 @@ print_constant (FILE *out, JCF *jcf, int index, int verbosity)
} }
if (verbosity > 1) if (verbosity > 1)
fprintf (out, ", bits = 0x%08lx", JPOOL_UINT (jcf, index)); fprintf (out, ", bits = 0x%08lx", (long) JPOOL_UINT (jcf, index));
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment