< prev index next >

src/share/vm/ci/bcEscapeAnalyzer.cpp

Print this page




 849           fall_through = false;
 850           break;
 851         }
 852       case Bytecodes::_ireturn:
 853       case Bytecodes::_freturn:
 854         state.spop();
 855         fall_through = false;
 856         break;
 857       case Bytecodes::_lreturn:
 858       case Bytecodes::_dreturn:
 859         state.lpop();
 860         fall_through = false;
 861         break;
 862       case Bytecodes::_areturn:
 863       case Bytecodes::_vreturn:
 864         set_returned(state.apop());
 865         fall_through = false;
 866         break;
 867       case Bytecodes::_getstatic:
 868       case Bytecodes::_getfield:
 869       case Bytecodes::_vgetfield:
 870         { bool ignored_will_link;
 871           ciField* field = s.get_field(ignored_will_link);
 872           BasicType field_type = field->type()->basic_type();
 873           if (s.cur_bc() != Bytecodes::_getstatic) {
 874             set_method_escape(state.apop());
 875           }
 876           if (field_type == T_OBJECT || field_type == T_ARRAY) {
 877             state.apush(unknown_obj);
 878           } else if (type2size[field_type] == 1) {
 879             state.spush();
 880           } else {
 881             state.lpush();
 882           }
 883         }
 884         break;
 885       case Bytecodes::_putstatic:
 886       case Bytecodes::_putfield:
 887         { bool will_link;
 888           ciField* field = s.get_field(will_link);
 889           BasicType field_type = field->type()->basic_type();




 849           fall_through = false;
 850           break;
 851         }
 852       case Bytecodes::_ireturn:
 853       case Bytecodes::_freturn:
 854         state.spop();
 855         fall_through = false;
 856         break;
 857       case Bytecodes::_lreturn:
 858       case Bytecodes::_dreturn:
 859         state.lpop();
 860         fall_through = false;
 861         break;
 862       case Bytecodes::_areturn:
 863       case Bytecodes::_vreturn:
 864         set_returned(state.apop());
 865         fall_through = false;
 866         break;
 867       case Bytecodes::_getstatic:
 868       case Bytecodes::_getfield:

 869         { bool ignored_will_link;
 870           ciField* field = s.get_field(ignored_will_link);
 871           BasicType field_type = field->type()->basic_type();
 872           if (s.cur_bc() != Bytecodes::_getstatic) {
 873             set_method_escape(state.apop());
 874           }
 875           if (field_type == T_OBJECT || field_type == T_ARRAY) {
 876             state.apush(unknown_obj);
 877           } else if (type2size[field_type] == 1) {
 878             state.spush();
 879           } else {
 880             state.lpush();
 881           }
 882         }
 883         break;
 884       case Bytecodes::_putstatic:
 885       case Bytecodes::_putfield:
 886         { bool will_link;
 887           ciField* field = s.get_field(will_link);
 888           BasicType field_type = field->type()->basic_type();


< prev index next >