Mercurial > hg > graal-compiler
diff src/share/vm/opto/stringopts.cpp @ 14429:2113136690bc
8024921: PPC64 (part 113): Extend Load and Store nodes to know about memory ordering
Summary: Add a field to C2 LoadNode and StoreNode classes which indicates whether the load/store should do an acquire/release on platforms which support it.
Reviewed-by: kvn
author | goetz |
---|---|
date | Fri, 15 Nov 2013 11:05:32 -0800 |
parents | 90abdd727e64 |
children | 4ca6dc0799b6 |
line wrap: on
line diff
--- a/src/share/vm/opto/stringopts.cpp Thu Nov 07 11:47:11 2013 +0100 +++ b/src/share/vm/opto/stringopts.cpp Fri Nov 15 11:05:32 2013 -0800 @@ -1122,7 +1122,8 @@ return kit.make_load(NULL, kit.basic_plus_adr(klass_node, field->offset_in_bytes()), type, T_OBJECT, - C->get_alias_index(mirror_type->add_offset(field->offset_in_bytes()))); + C->get_alias_index(mirror_type->add_offset(field->offset_in_bytes())), + MemNode::unordered); } Node* PhaseStringOpts::int_stringSize(GraphKit& kit, Node* arg) { @@ -1314,7 +1315,7 @@ Node* ch = __ AddI(r, __ intcon('0')); Node* st = __ store_to_memory(kit.control(), kit.array_element_address(char_array, m1, T_CHAR), - ch, T_CHAR, char_adr_idx); + ch, T_CHAR, char_adr_idx, MemNode::unordered); IfNode* iff = kit.create_and_map_if(head, __ Bool(__ CmpI(q, __ intcon(0)), BoolTest::ne), @@ -1356,7 +1357,7 @@ } else { Node* m1 = __ SubI(charPos, __ intcon(1)); Node* st = __ store_to_memory(kit.control(), kit.array_element_address(char_array, m1, T_CHAR), - sign, T_CHAR, char_adr_idx); + sign, T_CHAR, char_adr_idx, MemNode::unordered); final_merge->init_req(1, kit.control()); final_mem->init_req(1, st); @@ -1387,7 +1388,8 @@ ciTypeArray* value_array = t->const_oop()->as_type_array(); for (int e = 0; e < c; e++) { __ store_to_memory(kit.control(), kit.array_element_address(char_array, start, T_CHAR), - __ intcon(value_array->char_at(o + e)), T_CHAR, char_adr_idx); + __ intcon(value_array->char_at(o + e)), T_CHAR, char_adr_idx, + MemNode::unordered); start = __ AddI(start, __ intcon(1)); } } else { @@ -1607,7 +1609,7 @@ } case StringConcat::CharMode: { __ store_to_memory(kit.control(), kit.array_element_address(char_array, start, T_CHAR), - arg, T_CHAR, char_adr_idx); + arg, T_CHAR, char_adr_idx, MemNode::unordered); start = __ AddI(start, __ intcon(1)); break; }