src/share/vm/opto/macroArrayCopy.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/macroArrayCopy.cpp Tue Mar 1 18:11:05 2016
--- new/src/share/vm/opto/macroArrayCopy.cpp Tue Mar 1 18:11:05 2016
*** 878,889 ****
--- 878,895 ----
if (((src_off | dest_off) & (BytesPerLong-1)) == BytesPerInt &&
((src_off ^ dest_off) & (BytesPerLong-1)) == 0) {
Node* sptr = basic_plus_adr(src, src_off);
Node* dptr = basic_plus_adr(dest, dest_off);
uint alias_idx = C->get_alias_index(adr_type);
! Node* sval = transform_later(LoadNode::make(_igvn, *ctrl, (*mem)->memory_at(alias_idx), sptr, adr_type, TypeInt::INT, T_INT, MemNode::unordered));
! Node* st = transform_later(StoreNode::make(_igvn, *ctrl, (*mem)->memory_at(alias_idx), dptr, adr_type, sval, T_INT, MemNode::unordered));
! bool is_mismatched = (basic_elem_type != T_INT);
! Node* sval = transform_later(
+ LoadNode::make(_igvn, *ctrl, (*mem)->memory_at(alias_idx), sptr, adr_type,
+ TypeInt::INT, T_INT, MemNode::unordered, LoadNode::DependsOnlyOnTest,
+ false /*unaligned*/, is_mismatched));
+ Node* st = transform_later(
+ StoreNode::make(_igvn, *ctrl, (*mem)->memory_at(alias_idx), dptr, adr_type,
+ sval, T_INT, MemNode::unordered));
(*mem)->set_memory_at(alias_idx, st);
src_off += BytesPerInt;
dest_off += BytesPerInt;
} else {
return false;
src/share/vm/opto/macroArrayCopy.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File