Mercurial > hg > truffle
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); |