Mercurial > hg > graal-jvmci-8
diff src/share/vm/c1x/c1x_CodeInstaller.cpp @ 1453:d603bdbec024
Enable monitorenter/monitorexit runtime calls.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Fri, 12 Nov 2010 18:34:07 +0100 |
parents | 565f45cebac2 |
children | dc114f680d9c |
line wrap: on
line diff
--- a/src/share/vm/c1x/c1x_CodeInstaller.cpp Fri Nov 12 18:04:27 2010 +0100 +++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp Fri Nov 12 18:34:07 2010 +0100 @@ -327,7 +327,6 @@ reexecute = Interpreter::bytecode_should_reexecute(code); } - if (frame != NULL) { jint local_count = CiDebugInfo_Frame::numLocals(frame); jint expression_count = CiDebugInfo_Frame::numStack(frame); @@ -350,8 +349,9 @@ } else { assert(value->is_location(), "invalid monitor location"); LocationValue* loc = (LocationValue*)value; - LocationValue* obj = new LocationValue(Location::new_stk_loc(Location::oop, loc->location().stack_offset() + HeapWordSize)); - monitors->append(new MonitorValue(obj, Location::new_stk_loc(Location::normal, loc->location().stack_offset()))); + int monitor_offset = loc->location().stack_offset(); + LocationValue* obj = new LocationValue(Location::new_stk_loc(Location::oop, monitor_offset + BasicObjectLock::obj_offset_in_bytes())); + monitors->append(new MonitorValue(obj, Location::new_stk_loc(Location::normal, monitor_offset + BasicObjectLock::lock_offset_in_bytes()))); } } DebugToken* locals_token = _debug_recorder->create_scope_values(locals);