changeset 4510:ce0cee0f0e00

8005722: Assert in c1_LIR.hpp incorrect wrt to number of register operands Summary: In LIR_OpVisitState::visit() the receiver operand is processed twice Reviewed-by: roland, vladidan
author bpittore
date Thu, 28 Feb 2013 12:09:57 -0500
parents d323b9b05997
children 69ff881ab627
files src/share/vm/c1/c1_LIR.cpp
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/c1/c1_LIR.cpp	Thu Feb 28 10:50:35 2013 +0000
+++ b/src/share/vm/c1/c1_LIR.cpp	Thu Feb 28 12:09:57 2013 -0500
@@ -805,7 +805,7 @@
 
       // only visit register parameters
       int n = opJavaCall->_arguments->length();
-      for (int i = 0; i < n; i++) {
+      for (int i = opJavaCall->_receiver->is_valid() ? 1 : 0; i < n; i++) {
         if (!opJavaCall->_arguments->at(i)->is_pointer()) {
           do_input(*opJavaCall->_arguments->adr_at(i));
         }