7123253: C1: in store check code, usage of registers may be incorrect
authorroland
Fri, 23 Dec 2011 09:36:23 +0100
changeset 11433 2a2e375199de
parent 11432 c731e8d846ce
child 11434 c50976508b6b
7123253: C1: in store check code, usage of registers may be incorrect Summary: fix usage of input register in assembly code for store check. Reviewed-by: never
hotspot/src/share/vm/c1/c1_LIR.cpp
--- a/hotspot/src/share/vm/c1/c1_LIR.cpp	Thu Dec 22 10:55:53 2011 +0100
+++ b/hotspot/src/share/vm/c1/c1_LIR.cpp	Fri Dec 23 09:36:23 2011 +0100
@@ -854,6 +854,9 @@
       if (opTypeCheck->_info_for_exception)       do_info(opTypeCheck->_info_for_exception);
       if (opTypeCheck->_info_for_patch)           do_info(opTypeCheck->_info_for_patch);
       if (opTypeCheck->_object->is_valid())       do_input(opTypeCheck->_object);
+      if (op->code() == lir_store_check && opTypeCheck->_object->is_valid()) {
+        do_temp(opTypeCheck->_object);
+      }
       if (opTypeCheck->_array->is_valid())        do_input(opTypeCheck->_array);
       if (opTypeCheck->_tmp1->is_valid())         do_temp(opTypeCheck->_tmp1);
       if (opTypeCheck->_tmp2->is_valid())         do_temp(opTypeCheck->_tmp2);