< prev index next >

src/hotspot/share/opto/lcm.cpp

Print this page

        

*** 273,285 **** } else { // only regular oops are expected here tptr = base->bottom_type()->is_ptr(); } // Give up if offset is not a compile-time constant. ! if (offset == Type::OffsetBot || tptr->_offset == Type::OffsetBot) continue; ! offset += tptr->_offset; // correct if base is offseted // Give up if reference is beyond page size. if (MacroAssembler::needs_explicit_null_check(offset)) continue; // Give up if base is a decode node and the heap base is not protected. if (base->is_Mach() && base->as_Mach()->ideal_Opcode() == Op_DecodeN && --- 273,285 ---- } else { // only regular oops are expected here tptr = base->bottom_type()->is_ptr(); } // Give up if offset is not a compile-time constant. ! if (offset == Type::OffsetBot || tptr->offset() == Type::OffsetBot) continue; ! offset += tptr->offset(); // correct if base is offseted // Give up if reference is beyond page size. if (MacroAssembler::needs_explicit_null_check(offset)) continue; // Give up if base is a decode node and the heap base is not protected. if (base->is_Mach() && base->as_Mach()->ideal_Opcode() == Op_DecodeN &&
*** 840,850 **** // Act as if the call defines the Frame Pointer. // Certainly the FP is alive and well after the call. regs.Insert(_matcher.c_frame_pointer()); // Set all registers killed and not already defined by the call. ! uint r_cnt = mcall->tf()->range()->cnt(); int op = mcall->ideal_Opcode(); MachProjNode *proj = new MachProjNode( mcall, r_cnt+1, RegMask::Empty, MachProjNode::fat_proj ); map_node_to_block(proj, block); block->insert_node(proj, node_cnt++); --- 840,850 ---- // Act as if the call defines the Frame Pointer. // Certainly the FP is alive and well after the call. regs.Insert(_matcher.c_frame_pointer()); // Set all registers killed and not already defined by the call. ! uint r_cnt = mcall->tf()->range_cc()->cnt(); int op = mcall->ideal_Opcode(); MachProjNode *proj = new MachProjNode( mcall, r_cnt+1, RegMask::Empty, MachProjNode::fat_proj ); map_node_to_block(proj, block); block->insert_node(proj, node_cnt++);
< prev index next >