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) { |