259 bool inline_native_Class_query(vmIntrinsics::ID id); |
259 bool inline_native_Class_query(vmIntrinsics::ID id); |
260 bool inline_native_subtype_check(); |
260 bool inline_native_subtype_check(); |
261 bool inline_native_getLength(); |
261 bool inline_native_getLength(); |
262 bool inline_array_copyOf(bool is_copyOfRange); |
262 bool inline_array_copyOf(bool is_copyOfRange); |
263 bool inline_array_equals(StrIntrinsicNode::ArgEnc ae); |
263 bool inline_array_equals(StrIntrinsicNode::ArgEnc ae); |
264 bool inline_objects_checkIndex(); |
264 bool inline_preconditions_checkIndex(); |
265 void copy_to_clone(Node* obj, Node* alloc_obj, Node* obj_size, bool is_array, bool card_mark); |
265 void copy_to_clone(Node* obj, Node* alloc_obj, Node* obj_size, bool is_array, bool card_mark); |
266 bool inline_native_clone(bool is_virtual); |
266 bool inline_native_clone(bool is_virtual); |
267 bool inline_native_Reflection_getCallerClass(); |
267 bool inline_native_Reflection_getCallerClass(); |
268 // Helper function for inlining native object hash method |
268 // Helper function for inlining native object hash method |
269 bool inline_native_hashcode(bool is_virtual, bool is_static); |
269 bool inline_native_hashcode(bool is_virtual, bool is_static); |
712 case vmIntrinsics::_getLength: return inline_native_getLength(); |
712 case vmIntrinsics::_getLength: return inline_native_getLength(); |
713 case vmIntrinsics::_copyOf: return inline_array_copyOf(false); |
713 case vmIntrinsics::_copyOf: return inline_array_copyOf(false); |
714 case vmIntrinsics::_copyOfRange: return inline_array_copyOf(true); |
714 case vmIntrinsics::_copyOfRange: return inline_array_copyOf(true); |
715 case vmIntrinsics::_equalsB: return inline_array_equals(StrIntrinsicNode::LL); |
715 case vmIntrinsics::_equalsB: return inline_array_equals(StrIntrinsicNode::LL); |
716 case vmIntrinsics::_equalsC: return inline_array_equals(StrIntrinsicNode::UU); |
716 case vmIntrinsics::_equalsC: return inline_array_equals(StrIntrinsicNode::UU); |
717 case vmIntrinsics::_Objects_checkIndex: return inline_objects_checkIndex(); |
717 case vmIntrinsics::_Preconditions_checkIndex: return inline_preconditions_checkIndex(); |
718 case vmIntrinsics::_clone: return inline_native_clone(intrinsic()->is_virtual()); |
718 case vmIntrinsics::_clone: return inline_native_clone(intrinsic()->is_virtual()); |
719 |
719 |
720 case vmIntrinsics::_allocateUninitializedArray: return inline_unsafe_newArray(true); |
720 case vmIntrinsics::_allocateUninitializedArray: return inline_unsafe_newArray(true); |
721 case vmIntrinsics::_newArray: return inline_unsafe_newArray(false); |
721 case vmIntrinsics::_newArray: return inline_unsafe_newArray(false); |
722 |
722 |
1139 Node* result = new HasNegativesNode(control(), memory(TypeAryPtr::BYTES), ba_start, len); |
1139 Node* result = new HasNegativesNode(control(), memory(TypeAryPtr::BYTES), ba_start, len); |
1140 set_result(_gvn.transform(result)); |
1140 set_result(_gvn.transform(result)); |
1141 return true; |
1141 return true; |
1142 } |
1142 } |
1143 |
1143 |
1144 bool LibraryCallKit::inline_objects_checkIndex() { |
1144 bool LibraryCallKit::inline_preconditions_checkIndex() { |
1145 Node* index = argument(0); |
1145 Node* index = argument(0); |
1146 Node* length = argument(1); |
1146 Node* length = argument(1); |
1147 if (too_many_traps(Deoptimization::Reason_intrinsic) || too_many_traps(Deoptimization::Reason_range_check)) { |
1147 if (too_many_traps(Deoptimization::Reason_intrinsic) || too_many_traps(Deoptimization::Reason_range_check)) { |
1148 return false; |
1148 return false; |
1149 } |
1149 } |