< prev index next >

src/hotspot/share/compiler/compilerDirectives.cpp

Print this page

        

@@ -333,12 +333,16 @@
     ccstrlist option_value;
     bool need_reset = true; // if Control/DisableIntrinsic redefined, only need to reset control_words once
 
     if (!_modified[ControlIntrinsicIndex] &&
         CompilerOracle::has_option_value(method, "ControlIntrinsic", option_value)) {
+      ResourceMark rm;
+      ControlIntrinsicValidator validator(option_value, false/*disable_all*/);
       ControlIntrinsicIter iter(option_value);
 
+      guarantee(validator.is_valid(), "An unrecognized intrinsic is detected in the directive of ControlIntrinsic %s : %s",
+                                      method->external_name_short(), validator.what());
       if (need_reset) {
         set->_intrinsic_control_words.fill_in(TriBool());
         need_reset = false;
       }
 

@@ -353,12 +357,16 @@
     }
 
 
     if (!_modified[DisableIntrinsicIndex] &&
         CompilerOracle::has_option_value(method, "DisableIntrinsic", option_value)) {
+      ResourceMark rm;
+      ControlIntrinsicValidator validator(option_value, true/*disable_all*/);
       ControlIntrinsicIter iter(option_value, true/*disable_all*/);
 
+      guarantee(validator.is_valid(), "An unrecognized intrinsic is detected in the directive of DisableIntrinsic %s : %s",
+                                      method->external_name_short(), validator.what());
       if (need_reset) {
         set->_intrinsic_control_words.fill_in(TriBool());
         need_reset = false;
       }
 
< prev index next >