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();
  }
}
Ejemplo n.º 2
0
static ValueStack* debug_info(Instruction* ins) {
    StateSplit* ss = ins->as_StateSplit();
    if (ss != NULL) return ss->state();
    return ins->state_before();
}