hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp
changeset 38177 b0c9cb06506b
parent 38018 1dc6c6f21231
child 39219 1b33aa56ed18
equal deleted inserted replaced
38175:4e2bff1a5467 38177:b0c9cb06506b
    65       //       If an interval ends at the current instruction id, it is not possible
    65       //       If an interval ends at the current instruction id, it is not possible
    66       //       to decide if the register is live or not at the block begin -> the
    66       //       to decide if the register is live or not at the block begin -> the
    67       //       register information would be incorrect.
    67       //       register information would be incorrect.
    68       if (b->number_of_preds() > 1) {
    68       if (b->number_of_preds() > 1) {
    69         int id = b->first_lir_instruction_id();
    69         int id = b->first_lir_instruction_id();
    70         BitMap regs(FrameMap::nof_fpu_regs);
    70         ResourceBitMap regs(FrameMap::nof_fpu_regs);
    71         regs.clear();
    71         regs.clear();
    72 
    72 
    73         iw.walk_to(id);   // walk after the first instruction (always a label) of the block
    73         iw.walk_to(id);   // walk after the first instruction (always a label) of the block
    74         assert(iw.current_position() == id, "did not walk completely to id");
    74         assert(iw.current_position() == id, "did not walk completely to id");
    75 
    75 
  1067     } else {
  1067     } else {
  1068       // propagate current FPU stack state to successor without state
  1068       // propagate current FPU stack state to successor without state
  1069       // clean up stack first so that there are no dead values on the stack
  1069       // clean up stack first so that there are no dead values on the stack
  1070       if (ComputeExactFPURegisterUsage) {
  1070       if (ComputeExactFPURegisterUsage) {
  1071         FpuStackSim* cur_sim = sim();
  1071         FpuStackSim* cur_sim = sim();
  1072         BitMap live_fpu_regs = block->sux_at(0)->fpu_register_usage();
  1072         ResourceBitMap live_fpu_regs = block->sux_at(0)->fpu_register_usage();
  1073         assert(live_fpu_regs.size() == FrameMap::nof_fpu_regs, "missing register usage");
  1073         assert(live_fpu_regs.size() == FrameMap::nof_fpu_regs, "missing register usage");
  1074 
  1074 
  1075         merge_cleanup_fpu_stack(instrs, cur_sim, live_fpu_regs);
  1075         merge_cleanup_fpu_stack(instrs, cur_sim, live_fpu_regs);
  1076       }
  1076       }
  1077 
  1077