8005722: Assert in c1_LIR.hpp incorrect wrt to number of register operands

Thu, 24 Jan 2013 13:27:54 -0500

author
bpittore
date
Thu, 24 Jan 2013 13:27:54 -0500
changeset 4625
84a926fe53d0
parent 4624
6c2da81297c5
child 4626
cf9a2071eeac
child 4627
1605eef8e11e

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

src/share/vm/c1/c1_LIR.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/c1/c1_LIR.cpp	Tue Feb 12 09:54:34 2013 -0800
     1.2 +++ b/src/share/vm/c1/c1_LIR.cpp	Thu Jan 24 13:27:54 2013 -0500
     1.3 @@ -814,7 +814,7 @@
     1.4  
     1.5        // only visit register parameters
     1.6        int n = opJavaCall->_arguments->length();
     1.7 -      for (int i = 0; i < n; i++) {
     1.8 +      for (int i = opJavaCall->_receiver->is_valid() ? 1 : 0; i < n; i++) {
     1.9          if (!opJavaCall->_arguments->at(i)->is_pointer()) {
    1.10            do_input(*opJavaCall->_arguments->adr_at(i));
    1.11          }

mercurial