src/share/vm/opto/graphKit.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6829187 Sdiff src/share/vm/opto

src/share/vm/opto/graphKit.cpp

Print this page
rev 1082 : [mq]: indy.compiler.patch


 964       iter.reset_to_bci(bci());
 965       iter.next();
 966       ciField* field = iter.get_field(ignore);
 967       int      size  = field->type()->size();
 968       inputs  = (is_static ? 0 : 1);
 969       if (is_get) {
 970         depth = size - inputs;
 971       } else {
 972         inputs += size;        // putxxx pops the value from the stack
 973         depth = - inputs;
 974       }
 975     }
 976     break;
 977 
 978   case Bytecodes::_invokevirtual:
 979   case Bytecodes::_invokespecial:
 980   case Bytecodes::_invokestatic:
 981   case Bytecodes::_invokedynamic:
 982   case Bytecodes::_invokeinterface:
 983     {
 984       bool is_static = (depth == 0);
 985       bool ignore;
 986       ciBytecodeStream iter(method());
 987       iter.reset_to_bci(bci());
 988       iter.next();
 989       ciMethod* method = iter.get_method(ignore);
 990       inputs = method->arg_size_no_receiver();
 991       if (!is_static)  inputs += 1;






 992       int size = method->return_type()->size();
 993       depth = size - inputs;
 994     }
 995     break;
 996 
 997   case Bytecodes::_multianewarray:
 998     {
 999       ciBytecodeStream iter(method());
1000       iter.reset_to_bci(bci());
1001       iter.next();
1002       inputs = iter.get_dimensions();
1003       assert(rsize == 1, "");
1004       depth = rsize - inputs;
1005     }
1006     break;
1007 
1008   case Bytecodes::_ireturn:
1009   case Bytecodes::_lreturn:
1010   case Bytecodes::_freturn:
1011   case Bytecodes::_dreturn:




 964       iter.reset_to_bci(bci());
 965       iter.next();
 966       ciField* field = iter.get_field(ignore);
 967       int      size  = field->type()->size();
 968       inputs  = (is_static ? 0 : 1);
 969       if (is_get) {
 970         depth = size - inputs;
 971       } else {
 972         inputs += size;        // putxxx pops the value from the stack
 973         depth = - inputs;
 974       }
 975     }
 976     break;
 977 
 978   case Bytecodes::_invokevirtual:
 979   case Bytecodes::_invokespecial:
 980   case Bytecodes::_invokestatic:
 981   case Bytecodes::_invokedynamic:
 982   case Bytecodes::_invokeinterface:
 983     {

 984       bool ignore;
 985       ciBytecodeStream iter(method());
 986       iter.reset_to_bci(bci());
 987       iter.next();
 988       ciMethod* method = iter.get_method(ignore);
 989       inputs = method->arg_size_no_receiver();
 990       // Add a receiver argument, maybe:
 991       if (code != Bytecodes::_invokestatic &&
 992           code != Bytecodes::_invokedynamic)
 993         inputs += 1;
 994       // (Do not use ciMethod::arg_size(), because
 995       // it might be an unloaded method, which doesn't
 996       // know whether it is static or not.)
 997       int size = method->return_type()->size();
 998       depth = size - inputs;
 999     }
1000     break;
1001 
1002   case Bytecodes::_multianewarray:
1003     {
1004       ciBytecodeStream iter(method());
1005       iter.reset_to_bci(bci());
1006       iter.next();
1007       inputs = iter.get_dimensions();
1008       assert(rsize == 1, "");
1009       depth = rsize - inputs;
1010     }
1011     break;
1012 
1013   case Bytecodes::_ireturn:
1014   case Bytecodes::_lreturn:
1015   case Bytecodes::_freturn:
1016   case Bytecodes::_dreturn:


src/share/vm/opto/graphKit.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File