--- old/src/share/vm/opto/reg_split.cpp 2017-06-28 15:44:54.000000000 -0700 +++ new/src/share/vm/opto/reg_split.cpp 2017-06-28 15:44:53.000000000 -0700 @@ -80,9 +80,9 @@ int num_regs = RegMask::num_registers(ireg); bool is_vect = RegMask::is_vector(ireg); if( w_mask->overlap( *o_mask ) && // Overlap AND - ((num_regs == 1) // Single use or aligned - || is_vect // or vector - || !is_vect && o_mask->is_aligned_pairs()) ) { + (num_regs == 1 // Single use or aligned + || is_vect // or vector + || (!is_vect && o_mask->is_aligned_pairs())) ) { assert(!is_vect || o_mask->is_aligned_sets(num_regs), "vectors are aligned"); // Don't come here for mis-aligned doubles w_o_mask = w_mask; @@ -1033,7 +1033,7 @@ if( !umask.is_AllStack() && (int)umask.Size() <= lrgs(useidx).num_regs() && (!def->rematerialize() || - !is_vect && umask.is_misaligned_pair())) { + (!is_vect && umask.is_misaligned_pair()))) { // These need a Split regardless of overlap or pressure // SPLIT - NO DEF - NO CISC SPILL maxlrg = split_USE(MachSpillCopyNode::Bound, def,b,n,inpidx,maxlrg,dup,false, splits,slidx); @@ -1188,7 +1188,7 @@ bool is_vect = RegMask::is_vector(ireg); // Only split at Def if this is a HRP block or bound (and spilled once) if( !n->rematerialize() && - (((dmask.is_bound(ireg) || !is_vect && dmask.is_misaligned_pair()) && + (((dmask.is_bound(ireg) || (!is_vect && dmask.is_misaligned_pair())) && (deflrg._direct_conflict || deflrg._must_spill)) || // Check for LRG being up in a register and we are inside a high // pressure area. Spill it down immediately.