1062 depth = size - inputs;
1063 }
1064 break;
1065
1066 case Bytecodes::_multianewarray:
1067 {
1068 ciBytecodeStream iter(method());
1069 iter.reset_to_bci(bci());
1070 iter.next();
1071 inputs = iter.get_dimensions();
1072 assert(rsize == 1, "");
1073 depth = rsize - inputs;
1074 }
1075 break;
1076
1077 case Bytecodes::_ireturn:
1078 case Bytecodes::_lreturn:
1079 case Bytecodes::_freturn:
1080 case Bytecodes::_dreturn:
1081 case Bytecodes::_areturn:
1082 assert(rsize = -depth, "");
1083 inputs = rsize;
1084 break;
1085
1086 case Bytecodes::_jsr:
1087 case Bytecodes::_jsr_w:
1088 inputs = 0;
1089 depth = 1; // S.B. depth=1, not zero
1090 break;
1091
1092 default:
1093 // bytecode produces a typed result
1094 inputs = rsize - depth;
1095 assert(inputs >= 0, "");
1096 break;
1097 }
1098
1099 #ifdef ASSERT
1100 // spot check
1101 int outputs = depth + inputs;
1102 assert(outputs >= 0, "sanity");
|
1062 depth = size - inputs;
1063 }
1064 break;
1065
1066 case Bytecodes::_multianewarray:
1067 {
1068 ciBytecodeStream iter(method());
1069 iter.reset_to_bci(bci());
1070 iter.next();
1071 inputs = iter.get_dimensions();
1072 assert(rsize == 1, "");
1073 depth = rsize - inputs;
1074 }
1075 break;
1076
1077 case Bytecodes::_ireturn:
1078 case Bytecodes::_lreturn:
1079 case Bytecodes::_freturn:
1080 case Bytecodes::_dreturn:
1081 case Bytecodes::_areturn:
1082 assert(rsize == -depth, "");
1083 inputs = rsize;
1084 break;
1085
1086 case Bytecodes::_jsr:
1087 case Bytecodes::_jsr_w:
1088 inputs = 0;
1089 depth = 1; // S.B. depth=1, not zero
1090 break;
1091
1092 default:
1093 // bytecode produces a typed result
1094 inputs = rsize - depth;
1095 assert(inputs >= 0, "");
1096 break;
1097 }
1098
1099 #ifdef ASSERT
1100 // spot check
1101 int outputs = depth + inputs;
1102 assert(outputs >= 0, "sanity");
|