439 cie->print_name_on(st); 440 } else if (cie->is_type_array_klass()) { 441 cie->as_array_klass()->base_element_type()->print_name_on(st); 442 } else { 443 ShouldNotReachHere(); 444 } 445 st->print("[%d]", spobj->n_fields()); 446 int ndim = cik->as_array_klass()->dimension() - 1; 447 while (ndim-- > 0) { 448 st->print("[]"); 449 } 450 } 451 st->print("={"); 452 uint nf = spobj->n_fields(); 453 if (nf > 0) { 454 uint first_ind = spobj->first_index(); 455 Node* fld_node = mcall->in(first_ind); 456 ciField* cifield; 457 if (iklass != NULL) { 458 st->print(" ["); 459 cifield = iklass->nonstatic_field_at(0); 460 cifield->print_name_on(st); 461 format_helper( regalloc, st, fld_node, ":", 0, &scobjs ); 462 } else { 463 format_helper( regalloc, st, fld_node, "[", 0, &scobjs ); 464 } 465 for (uint j = 1; j < nf; j++) { 466 fld_node = mcall->in(first_ind+j); 467 if (iklass != NULL) { 468 st->print(", ["); 469 cifield = iklass->nonstatic_field_at(j); 470 cifield->print_name_on(st); 471 format_helper( regalloc, st, fld_node, ":", j, &scobjs ); 472 } else { 473 format_helper( regalloc, st, fld_node, ", [", j, &scobjs ); 474 } 475 } 476 } 477 st->print(" }"); 478 } 479 } 480 st->print_cr(""); 481 if (caller() != NULL) caller()->format(regalloc, n, st); 482 } 483 484 485 void JVMState::dump_spec(outputStream *st) const { 486 if (_method != NULL) { 487 bool printed = false; 488 if (!Verbose) { 489 // The JVMS dumps make really, really long lines. | 439 cie->print_name_on(st); 440 } else if (cie->is_type_array_klass()) { 441 cie->as_array_klass()->base_element_type()->print_name_on(st); 442 } else { 443 ShouldNotReachHere(); 444 } 445 st->print("[%d]", spobj->n_fields()); 446 int ndim = cik->as_array_klass()->dimension() - 1; 447 while (ndim-- > 0) { 448 st->print("[]"); 449 } 450 } 451 st->print("={"); 452 uint nf = spobj->n_fields(); 453 if (nf > 0) { 454 uint first_ind = spobj->first_index(); 455 Node* fld_node = mcall->in(first_ind); 456 ciField* cifield; 457 if (iklass != NULL) { 458 st->print(" ["); 459 cifield = iklass->nonstatic_fields()->at(0); 460 cifield->print_name_on(st); 461 format_helper( regalloc, st, fld_node, ":", 0, &scobjs ); 462 } else { 463 format_helper( regalloc, st, fld_node, "[", 0, &scobjs ); 464 } 465 for (uint j = 1; j < nf; j++) { 466 fld_node = mcall->in(first_ind+j); 467 if (iklass != NULL) { 468 st->print(", ["); 469 cifield = iklass->nonstatic_fields()->at(j); 470 cifield->print_name_on(st); 471 format_helper( regalloc, st, fld_node, ":", j, &scobjs ); 472 } else { 473 format_helper( regalloc, st, fld_node, ", [", j, &scobjs ); 474 } 475 } 476 } 477 st->print(" }"); 478 } 479 } 480 st->print_cr(""); 481 if (caller() != NULL) caller()->format(regalloc, n, st); 482 } 483 484 485 void JVMState::dump_spec(outputStream *st) const { 486 if (_method != NULL) { 487 bool printed = false; 488 if (!Verbose) { 489 // The JVMS dumps make really, really long lines. |