1678 m = _mem_node; |
1678 m = _mem_node; |
1679 assert(m != NULL && m->is_Mem(), "expecting memory node"); |
1679 assert(m != NULL && m->is_Mem(), "expecting memory node"); |
1680 } |
1680 } |
1681 const Type* mach_at = mach->adr_type(); |
1681 const Type* mach_at = mach->adr_type(); |
1682 // DecodeN node consumed by an address may have different type |
1682 // DecodeN node consumed by an address may have different type |
1683 // then its input. Don't compare types for such case. |
1683 // than its input. Don't compare types for such case. |
1684 if (m->adr_type() != mach_at && |
1684 if (m->adr_type() != mach_at && |
1685 (m->in(MemNode::Address)->is_DecodeNarrowPtr() || |
1685 (m->in(MemNode::Address)->is_DecodeNarrowPtr() || |
1686 m->in(MemNode::Address)->is_AddP() && |
1686 (m->in(MemNode::Address)->is_AddP() && |
1687 m->in(MemNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr() || |
1687 m->in(MemNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr()) || |
1688 m->in(MemNode::Address)->is_AddP() && |
1688 (m->in(MemNode::Address)->is_AddP() && |
1689 m->in(MemNode::Address)->in(AddPNode::Address)->is_AddP() && |
1689 m->in(MemNode::Address)->in(AddPNode::Address)->is_AddP() && |
1690 m->in(MemNode::Address)->in(AddPNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr())) { |
1690 m->in(MemNode::Address)->in(AddPNode::Address)->in(AddPNode::Address)->is_DecodeNarrowPtr()))) { |
1691 mach_at = m->adr_type(); |
1691 mach_at = m->adr_type(); |
1692 } |
1692 } |
1693 if (m->adr_type() != mach_at) { |
1693 if (m->adr_type() != mach_at) { |
1694 m->dump(); |
1694 m->dump(); |
1695 tty->print_cr("mach:"); |
1695 tty->print_cr("mach:"); |