< prev index next >

src/hotspot/share/opto/parse1.cpp

Print this page

        

*** 126,136 **** case T_OBJECT: l = new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInstPtr::BOTTOM, MemNode::unordered); break; case T_VALUETYPE: { // Load oop and create a new ValueTypeNode const TypeInstPtr* ptr_type = TypeInstPtr::make(TypePtr::BotPTR, type->is_valuetype()->value_klass()); l = _gvn.transform(new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, ptr_type, MemNode::unordered)); ! l = ValueTypeNode::make_from_oop(this, l, type->is_valuetype()->value_klass(), /* buffer_check */ true, /* null2default */ false); break; } case T_LONG: case T_DOUBLE: { // Since arguments are in reverse order, the argument address 'adr' --- 126,136 ---- case T_OBJECT: l = new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInstPtr::BOTTOM, MemNode::unordered); break; case T_VALUETYPE: { // Load oop and create a new ValueTypeNode const TypeInstPtr* ptr_type = TypeInstPtr::make(TypePtr::BotPTR, type->is_valuetype()->value_klass()); l = _gvn.transform(new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, ptr_type, MemNode::unordered)); ! l = ValueTypeNode::make_from_oop(this, l, type->is_valuetype()->value_klass(), /* null2default */ false); break; } case T_LONG: case T_DOUBLE: { // Since arguments are in reverse order, the argument address 'adr'
*** 608,618 **** const Type* t = _gvn.type(parm); if (!ValueTypePassFieldsAsArgs) { if (t->is_valuetypeptr()) { // Create ValueTypeNode from the oop and replace the parameter assert(!t->is_ptr()->maybe_null(), "value type arguments should never be null"); ! Node* vt = ValueTypeNode::make_from_oop(this, parm, t->value_klass(), /* buffer_check */ true, /* null2default */ false); map()->replace_edge(parm, vt); } } else { assert(false, "FIXME"); // TODO move the code from build_start_state and do_late_inline here --- 608,618 ---- const Type* t = _gvn.type(parm); if (!ValueTypePassFieldsAsArgs) { if (t->is_valuetypeptr()) { // Create ValueTypeNode from the oop and replace the parameter assert(!t->is_ptr()->maybe_null(), "value type arguments should never be null"); ! Node* vt = ValueTypeNode::make_from_oop(this, parm, t->value_klass(), /* null2default */ false); map()->replace_edge(parm, vt); } } else { assert(false, "FIXME"); // TODO move the code from build_start_state and do_late_inline here
< prev index next >