void InstructionPrinter::print_line(Instruction* instr) { // print instruction data on one line if (instr->is_pinned()) tty->put('.'); fill_to(bci_pos ); tty->print("%d", instr->bci()); fill_to(use_pos ); tty->print("%d", instr->use_count()); fill_to(temp_pos ); print_temp(instr); fill_to(instr_pos); print_instr(instr); tty->cr(); // add a line for StateSplit instructions w/ non-empty stacks // (make it robust so we can print incomplete instructions) StateSplit* split = instr->as_StateSplit(); if (split != NULL && split->state() != NULL && !split->state()->stack_is_empty()) { fill_to(instr_pos); print_stack(split->state()); tty->cr(); } }
static ValueStack* debug_info(Instruction* ins) { StateSplit* ss = ins->as_StateSplit(); if (ss != NULL) return ss->state(); return ins->state_before(); }