< prev index next >

src/hotspot/share/c1/c1_LinearScan.cpp

Print this page
@@ -61,13 +61,13 @@
    #define TRACE_LINEAR_SCAN(level, code)
  #endif
  
  // Map BasicType to spill size in 32-bit words, matching VMReg's notion of words
  #ifdef _LP64
- static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 0, 2,  1, 2, 1, -1};
+ static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, 0, 2,  1, 2, 1, -1};
  #else
- static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 0, 1, -1, 1, 1, -1};
+ static int type2spill_size[T_CONFLICT+1]={ -1, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 0, 1, -1, 1, 1, -1};
  #endif
  
  
  // Implementation of LinearScan
  

@@ -258,11 +258,11 @@
      it->assign_reg(spill);
    }
  }
  
  void LinearScan::propagate_spill_slots() {
-   if (!frame_map()->finalize_frame(max_spills())) {
+   if (!frame_map()->finalize_frame(max_spills(), compilation()->needs_stack_repair())) {
      bailout("frame too large");
    }
  }
  
  // create a new interval with a predefined reg_num

@@ -2949,11 +2949,11 @@
      for (int i = 0; i < nof_locks; i++) {
        monitors->append(location_for_monitor_index(lock_offset + i));
      }
    }
  
-   return new IRScopeDebugInfo(cur_scope, cur_state->bci(), locals, expressions, monitors, caller_debug_info);
+   return new IRScopeDebugInfo(cur_scope, cur_state->bci(), locals, expressions, monitors, caller_debug_info, cur_state->should_reexecute());
  }
  
  
  void LinearScan::compute_debug_info(CodeEmitInfo* info, int op_id) {
    TRACE_LINEAR_SCAN(3, tty->print_cr("creating debug information at op_id %d", op_id));
< prev index next >