comparison src/share/vm/opto/graphKit.cpp @ 12331:d8d059e90ec1

8025599: Missing store barrier with OptimizeStringConcat Reviewed-by: kvn, twisti Contributed-by: Axel Siebenborn <axel.siebenborn@sap.com>
author twisti
date Mon, 30 Sep 2013 15:42:39 -0700
parents edb5ab0f3fe5
children cefad50507d8 aa6f2ea19d8f d9043b88eeb3
comparison
equal deleted inserted replaced
12330:29bdcf12457c 12331:d8d059e90ec1
3847 void GraphKit::store_String_value(Node* ctrl, Node* str, Node* value) { 3847 void GraphKit::store_String_value(Node* ctrl, Node* str, Node* value) {
3848 int value_offset = java_lang_String::value_offset_in_bytes(); 3848 int value_offset = java_lang_String::value_offset_in_bytes();
3849 const TypeInstPtr* string_type = TypeInstPtr::make(TypePtr::NotNull, C->env()->String_klass(), 3849 const TypeInstPtr* string_type = TypeInstPtr::make(TypePtr::NotNull, C->env()->String_klass(),
3850 false, NULL, 0); 3850 false, NULL, 0);
3851 const TypePtr* value_field_type = string_type->add_offset(value_offset); 3851 const TypePtr* value_field_type = string_type->add_offset(value_offset);
3852 int value_field_idx = C->get_alias_index(value_field_type); 3852
3853 store_to_memory(ctrl, basic_plus_adr(str, value_offset), 3853 store_oop_to_object(ctrl, str, basic_plus_adr(str, value_offset), value_field_type,
3854 value, T_OBJECT, value_field_idx); 3854 value, TypeAryPtr::CHARS, T_OBJECT);
3855 } 3855 }
3856 3856
3857 void GraphKit::store_String_length(Node* ctrl, Node* str, Node* value) { 3857 void GraphKit::store_String_length(Node* ctrl, Node* str, Node* value) {
3858 int count_offset = java_lang_String::count_offset_in_bytes(); 3858 int count_offset = java_lang_String::count_offset_in_bytes();
3859 const TypeInstPtr* string_type = TypeInstPtr::make(TypePtr::NotNull, C->env()->String_klass(), 3859 const TypeInstPtr* string_type = TypeInstPtr::make(TypePtr::NotNull, C->env()->String_klass(),