diff src/share/vm/opto/loopopts.cpp @ 23799:535618ab1c04

6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type Summary: Emit CastII to make narrow ConvI2L dependent on the corresponding range check. Reviewed-by: kvn, roland
author thartmann
date Wed, 27 Jan 2016 09:02:51 +0100
parents b6585ac86988
children 5c3f2bcc3b94
line wrap: on
line diff
--- a/src/share/vm/opto/loopopts.cpp	Mon Jan 25 08:46:19 2016 +0000
+++ b/src/share/vm/opto/loopopts.cpp	Wed Jan 27 09:02:51 2016 +0100
@@ -772,6 +772,9 @@
 #ifdef _LP64
         if (m->Opcode() == Op_ConvI2L)
           return false;
+        if (m->is_CastII() && m->isa_CastII()->has_range_check()) {
+          return false;
+        }
 #endif
       }
     }