comparison src/share/vm/opto/output.cpp @ 3400:7523488edce5

7047300: VM crashes with assert(_base == InstPtr) failed: Not an object pointer Summary: The code incorrectly used is_instptr() instead of is_oopptr() to get const_oop. Reviewed-by: never
author kvn
date Tue, 24 May 2011 12:54:51 -0700
parents 92add02409c9
children 0e8a2a629afb 3d42f82cd811
comparison
equal deleted inserted replaced
3399:b55f5bd7ec66 3400:7523488edce5
909 } else { 909 } else {
910 scval = new_loc_value( _regalloc, obj_reg, Location::oop ); 910 scval = new_loc_value( _regalloc, obj_reg, Location::oop );
911 } 911 }
912 } else { 912 } else {
913 const TypePtr *tp = obj_node->bottom_type()->make_ptr(); 913 const TypePtr *tp = obj_node->bottom_type()->make_ptr();
914 scval = new ConstantOopWriteValue(tp->is_instptr()->const_oop()->constant_encoding()); 914 scval = new ConstantOopWriteValue(tp->is_oopptr()->const_oop()->constant_encoding());
915 } 915 }
916 916
917 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); 917 OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node);
918 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); 918 Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg));
919 while( !box_node->is_BoxLock() ) box_node = box_node->in(1); 919 while( !box_node->is_BoxLock() ) box_node = box_node->in(1);