Mercurial > hg > graal-jvmci-8
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(), |