--- a/hotspot/src/share/vm/opto/matcher.cpp Wed Jul 05 11:03:19 2017 -0700
+++ b/hotspot/src/share/vm/opto/matcher.cpp Thu Jul 06 01:50:26 2017 +0200
@@ -1680,14 +1680,14 @@
}
const Type* mach_at = mach->adr_type();
// DecodeN node consumed by an address may have different type
- // then its input. Don't compare types for such case.
+ // than its input. Don't compare types for such case.
if (m->adr_type() != mach_at &&
(m->in(MemNode::Address)->is_DecodeNarrowPtr() ||
- m->in(MemNode::Address)->is_AddP() &&
- m->in(MemNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr() ||
- m->in(MemNode::Address)->is_AddP() &&
- m->in(MemNode::Address)->in(AddPNode::Address)->is_AddP() &&
- m->in(MemNode::Address)->in(AddPNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr())) {
+ (m->in(MemNode::Address)->is_AddP() &&
+ m->in(MemNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr()) ||
+ (m->in(MemNode::Address)->is_AddP() &&
+ m->in(MemNode::Address)->in(AddPNode::Address)->is_AddP() &&
+ m->in(MemNode::Address)->in(AddPNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr()))) {
mach_at = m->adr_type();
}
if (m->adr_type() != mach_at) {