1.1 --- a/src/share/vm/ci/ciMethod.cpp Mon May 06 19:49:23 2013 -0700 1.2 +++ b/src/share/vm/ci/ciMethod.cpp Wed May 08 15:08:01 2013 -0700 1.3 @@ -1179,6 +1179,44 @@ 1.4 bool ciMethod::is_accessor () const { FETCH_FLAG_FROM_VM(is_accessor); } 1.5 bool ciMethod::is_initializer () const { FETCH_FLAG_FROM_VM(is_initializer); } 1.6 1.7 +bool ciMethod::is_boxing_method() const { 1.8 + if (holder()->is_box_klass()) { 1.9 + switch (intrinsic_id()) { 1.10 + case vmIntrinsics::_Boolean_valueOf: 1.11 + case vmIntrinsics::_Byte_valueOf: 1.12 + case vmIntrinsics::_Character_valueOf: 1.13 + case vmIntrinsics::_Short_valueOf: 1.14 + case vmIntrinsics::_Integer_valueOf: 1.15 + case vmIntrinsics::_Long_valueOf: 1.16 + case vmIntrinsics::_Float_valueOf: 1.17 + case vmIntrinsics::_Double_valueOf: 1.18 + return true; 1.19 + default: 1.20 + return false; 1.21 + } 1.22 + } 1.23 + return false; 1.24 +} 1.25 + 1.26 +bool ciMethod::is_unboxing_method() const { 1.27 + if (holder()->is_box_klass()) { 1.28 + switch (intrinsic_id()) { 1.29 + case vmIntrinsics::_booleanValue: 1.30 + case vmIntrinsics::_byteValue: 1.31 + case vmIntrinsics::_charValue: 1.32 + case vmIntrinsics::_shortValue: 1.33 + case vmIntrinsics::_intValue: 1.34 + case vmIntrinsics::_longValue: 1.35 + case vmIntrinsics::_floatValue: 1.36 + case vmIntrinsics::_doubleValue: 1.37 + return true; 1.38 + default: 1.39 + return false; 1.40 + } 1.41 + } 1.42 + return false; 1.43 +} 1.44 + 1.45 BCEscapeAnalyzer *ciMethod::get_bcea() { 1.46 #ifdef COMPILER2 1.47 if (_bcea == NULL) {