comparison src/share/vm/classfile/vmSymbols.cpp @ 45:48a3fa21394b

6667615: (Escape Analysis) extend MDO to cache arguments escape state Summary: Use MDO to cache arguments escape state determined by the byte code escape analyzer. Reviewed-by: never
author kvn
date Tue, 11 Mar 2008 19:00:38 -0700
parents a61af66fc99e
children d1605aabd0a1
comparison
equal deleted inserted replaced
44:52fed2ec0afb 45:48a3fa21394b
316 inline bool match_F_SN(jshort flags) { 316 inline bool match_F_SN(jshort flags) {
317 const int req = JVM_ACC_STATIC | JVM_ACC_NATIVE; 317 const int req = JVM_ACC_STATIC | JVM_ACC_NATIVE;
318 const int neg = JVM_ACC_SYNCHRONIZED; 318 const int neg = JVM_ACC_SYNCHRONIZED;
319 return (flags & (req | neg)) == req; 319 return (flags & (req | neg)) == req;
320 } 320 }
321 inline bool match_F_RNY(jshort flags) {
322 const int req = JVM_ACC_NATIVE | JVM_ACC_SYNCHRONIZED;
323 const int neg = JVM_ACC_STATIC;
324 return (flags & (req | neg)) == req;
325 }
321 326
322 // These are for forming case labels: 327 // These are for forming case labels:
323 #define ID3(x, y, z) (( jint)(z) + \ 328 #define ID3(x, y, z) (( jint)(z) + \
324 ((jint)(y) << vmSymbols::log2_SID_LIMIT) + \ 329 ((jint)(y) << vmSymbols::log2_SID_LIMIT) + \
325 ((jint)(x) << (2*vmSymbols::log2_SID_LIMIT)) ) 330 ((jint)(x) << (2*vmSymbols::log2_SID_LIMIT)) )
357 const char* fname = ""; 362 const char* fname = "";
358 switch (flags_for(id)) { 363 switch (flags_for(id)) {
359 case F_RN: fname = "native "; break; 364 case F_RN: fname = "native "; break;
360 case F_SN: fname = "native static "; break; 365 case F_SN: fname = "native static "; break;
361 case F_S: fname = "static "; break; 366 case F_S: fname = "static "; break;
367 case F_RNY:fname = "native synchronized "; break;
362 } 368 }
363 const char* kptr = strrchr(kname, '/'); 369 const char* kptr = strrchr(kname, '/');
364 if (kptr != NULL) kname = kptr + 1; 370 if (kptr != NULL) kname = kptr + 1;
365 int len = jio_snprintf(buf, buflen, "%s: %s%s.%s%s", 371 int len = jio_snprintf(buf, buflen, "%s: %s%s.%s%s",
366 str, fname, kname, mname, sname); 372 str, fname, kname, mname, sname);
483 xtty->end_elem(""); 489 xtty->end_elem("");
484 } 490 }
485 if (PrintMiscellaneous && (WizardMode || Verbose)) { 491 if (PrintMiscellaneous && (WizardMode || Verbose)) {
486 tty->print_cr("*** misidentified method; %s(%d) should be %s(%d):", 492 tty->print_cr("*** misidentified method; %s(%d) should be %s(%d):",
487 declared_name, declared_id, actual_name, actual_id); 493 declared_name, declared_id, actual_name, actual_id);
488 m->print_short_name(tty); 494 mh()->print_short_name(tty);
489 tty->cr(); 495 tty->cr();
490 } 496 }
491 } 497 }
492 #endif //PRODUCT 498 #endif //PRODUCT