< prev index next >

src/hotspot/share/oops/methodCounters.hpp

Print this page

        

@@ -101,13 +101,13 @@
     _interpreter_invocation_limit = compile_threshold << InvocationCounter::count_shift;
     if (ProfileInterpreter) {
       // If interpreter profiling is enabled, the backward branch limit
       // is compared against the method data counter rather than an invocation
       // counter, therefore no shifting of bits is required.
-      _interpreter_backward_branch_limit = (compile_threshold * (OnStackReplacePercentage - InterpreterProfilePercentage)) / 100;
+      _interpreter_backward_branch_limit = ((int64_t)compile_threshold * (OnStackReplacePercentage - InterpreterProfilePercentage)) / 100;
     } else {
-      _interpreter_backward_branch_limit = ((compile_threshold * OnStackReplacePercentage) / 100) << InvocationCounter::count_shift;
+      _interpreter_backward_branch_limit = (((int64_t)compile_threshold * OnStackReplacePercentage) / 100) << InvocationCounter::count_shift;
     }
     _interpreter_profile_limit = ((compile_threshold * InterpreterProfilePercentage) / 100) << InvocationCounter::count_shift;
     _invoke_mask = right_n_bits(CompilerConfig::scaled_freq_log(Tier0InvokeNotifyFreqLog, scale)) << InvocationCounter::count_shift;
     _backedge_mask = right_n_bits(CompilerConfig::scaled_freq_log(Tier0BackedgeNotifyFreqLog, scale)) << InvocationCounter::count_shift;
   }
< prev index next >