< prev index next >

src/share/vm/utilities/globalDefinitions.cpp

Print this page




 246   T_VALUETYPEPTR,          // T_VALUETYPEPTR = 20,
 247   T_CONFLICT               // T_CONFLICT = 21,
 248 };
 249 
 250 
 251 BasicType type2wfield[T_CONFLICT+1] = {
 252   (BasicType)0,            // 0,
 253   (BasicType)0,            // 1,
 254   (BasicType)0,            // 2,
 255   (BasicType)0,            // 3,
 256   T_INT,     // T_BOOLEAN  =  4,
 257   T_INT,     // T_CHAR     =  5,
 258   T_FLOAT,   // T_FLOAT    =  6,
 259   T_DOUBLE,  // T_DOUBLE   =  7,
 260   T_INT,     // T_BYTE     =  8,
 261   T_INT,     // T_SHORT    =  9,
 262   T_INT,     // T_INT      = 10,
 263   T_LONG,    // T_LONG     = 11,
 264   T_OBJECT,  // T_OBJECT   = 12,
 265   T_OBJECT,  // T_ARRAY    = 13,
 266   T_VALUETYPE, // T_VALUETYPE =14
 267   T_VOID,    // T_VOID     = 15,
 268   T_ADDRESS, // T_ADDRESS  = 16,
 269   T_NARROWOOP, // T_NARROWOOP  = 17,
 270   T_METADATA,  // T_METADATA   = 18,
 271   T_NARROWKLASS, // T_NARROWKLASS  = 19,
 272   T_VALUETYPEPTR,// T_VALUETYPEPTR =20,
 273   T_CONFLICT // T_CONFLICT = 21,
 274 };
 275 
 276 
 277 int _type2aelembytes[T_CONFLICT+1] = {
 278   0,                         // 0
 279   0,                         // 1
 280   0,                         // 2
 281   0,                         // 3
 282   T_BOOLEAN_aelem_bytes,     // T_BOOLEAN  =  4,
 283   T_CHAR_aelem_bytes,        // T_CHAR     =  5,
 284   T_FLOAT_aelem_bytes,       // T_FLOAT    =  6,
 285   T_DOUBLE_aelem_bytes,      // T_DOUBLE   =  7,
 286   T_BYTE_aelem_bytes,        // T_BYTE     =  8,
 287   T_SHORT_aelem_bytes,       // T_SHORT    =  9,
 288   T_INT_aelem_bytes,         // T_INT      = 10,
 289   T_LONG_aelem_bytes,        // T_LONG     = 11,
 290   T_OBJECT_aelem_bytes,      // T_OBJECT   = 12,
 291   T_ARRAY_aelem_bytes,       // T_ARRAY    = 13,
 292   T_VALUETYPE_aelem_bytes,   // T_VALUETYPE = 14
 293   0,                         // T_VOID     = 15,
 294   T_OBJECT_aelem_bytes,      // T_ADDRESS  = 16,
 295   T_NARROWOOP_aelem_bytes,   // T_NARROWOOP= 17,
 296   T_OBJECT_aelem_bytes,      // T_METADATA = 18,
 297   T_NARROWKLASS_aelem_bytes, // T_NARROWKLASS= 19,
 298   T_VALUETYPEPTR_aelem_bytes,// T_VALUETYPE = 20
 299   0                          // T_CONFLICT = 21,
 300 };
 301 
 302 #ifdef ASSERT
 303 int type2aelembytes(BasicType t, bool allow_address) {
 304   assert(allow_address || t != T_ADDRESS, " ");
 305   return _type2aelembytes[t];
 306 }
 307 #endif
 308 
 309 // Support for 64-bit integer arithmetic
 310 
 311 // The following code is mostly taken from JVM typedefs_md.h and system_md.c
 312 
 313 static const jlong high_bit   = (jlong)1 << (jlong)63;
 314 static const jlong other_bits = ~high_bit;
 315 
 316 jlong float2long(jfloat f) {
 317   jlong tmp = (jlong) f;
 318   if (tmp != high_bit) {




 246   T_VALUETYPEPTR,          // T_VALUETYPEPTR = 20,
 247   T_CONFLICT               // T_CONFLICT = 21,
 248 };
 249 
 250 
 251 BasicType type2wfield[T_CONFLICT+1] = {
 252   (BasicType)0,            // 0,
 253   (BasicType)0,            // 1,
 254   (BasicType)0,            // 2,
 255   (BasicType)0,            // 3,
 256   T_INT,     // T_BOOLEAN  =  4,
 257   T_INT,     // T_CHAR     =  5,
 258   T_FLOAT,   // T_FLOAT    =  6,
 259   T_DOUBLE,  // T_DOUBLE   =  7,
 260   T_INT,     // T_BYTE     =  8,
 261   T_INT,     // T_SHORT    =  9,
 262   T_INT,     // T_INT      = 10,
 263   T_LONG,    // T_LONG     = 11,
 264   T_OBJECT,  // T_OBJECT   = 12,
 265   T_OBJECT,  // T_ARRAY    = 13,
 266   T_VALUETYPE, // T_VALUETYPE = 14
 267   T_VOID,    // T_VOID     = 15,
 268   T_ADDRESS, // T_ADDRESS  = 16,
 269   T_NARROWOOP, // T_NARROWOOP  = 17,
 270   T_METADATA,  // T_METADATA   = 18,
 271   T_NARROWKLASS, // T_NARROWKLASS  = 19,
 272   T_VALUETYPEPTR,// T_VALUETYPEPTR = 20,
 273   T_CONFLICT // T_CONFLICT = 21,
 274 };
 275 
 276 
 277 int _type2aelembytes[T_CONFLICT+1] = {
 278   0,                         // 0
 279   0,                         // 1
 280   0,                         // 2
 281   0,                         // 3
 282   T_BOOLEAN_aelem_bytes,     // T_BOOLEAN  =  4,
 283   T_CHAR_aelem_bytes,        // T_CHAR     =  5,
 284   T_FLOAT_aelem_bytes,       // T_FLOAT    =  6,
 285   T_DOUBLE_aelem_bytes,      // T_DOUBLE   =  7,
 286   T_BYTE_aelem_bytes,        // T_BYTE     =  8,
 287   T_SHORT_aelem_bytes,       // T_SHORT    =  9,
 288   T_INT_aelem_bytes,         // T_INT      = 10,
 289   T_LONG_aelem_bytes,        // T_LONG     = 11,
 290   T_OBJECT_aelem_bytes,      // T_OBJECT   = 12,
 291   T_ARRAY_aelem_bytes,       // T_ARRAY    = 13,
 292   T_VALUETYPE_aelem_bytes,   // T_VALUETYPE = 14
 293   0,                         // T_VOID     = 15,
 294   T_OBJECT_aelem_bytes,      // T_ADDRESS  = 16,
 295   T_NARROWOOP_aelem_bytes,   // T_NARROWOOP= 17,
 296   T_OBJECT_aelem_bytes,      // T_METADATA = 18,
 297   T_NARROWKLASS_aelem_bytes, // T_NARROWKLASS= 19,
 298   T_VALUETYPEPTR_aelem_bytes,// T_VALUETYPEPTR = 20
 299   0                          // T_CONFLICT = 21,
 300 };
 301 
 302 #ifdef ASSERT
 303 int type2aelembytes(BasicType t, bool allow_address) {
 304   assert(allow_address || t != T_ADDRESS, " ");
 305   return _type2aelembytes[t];
 306 }
 307 #endif
 308 
 309 // Support for 64-bit integer arithmetic
 310 
 311 // The following code is mostly taken from JVM typedefs_md.h and system_md.c
 312 
 313 static const jlong high_bit   = (jlong)1 << (jlong)63;
 314 static const jlong other_bits = ~high_bit;
 315 
 316 jlong float2long(jfloat f) {
 317   jlong tmp = (jlong) f;
 318   if (tmp != high_bit) {


< prev index next >