Mercurial > hg > graal-jvmci-8
diff src/share/vm/code/scopeDesc.cpp @ 931:72088be4b386
6873116: Modify reexecute implementation to use pcDesc to record the reexecute bit
Summary: use PcDesc to keep record of the reexecute bit instead of using DebugInfoStreams
Reviewed-by: kvn, never, twisti
author | cfang |
---|---|
date | Thu, 20 Aug 2009 12:42:57 -0700 |
parents | 9987d9d5eb0e |
children | f70b0d9ab095 |
line wrap: on
line diff
--- a/src/share/vm/code/scopeDesc.cpp Wed Aug 19 19:05:18 2009 -0700 +++ b/src/share/vm/code/scopeDesc.cpp Thu Aug 20 12:42:57 2009 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,17 +26,19 @@ # include "incls/_scopeDesc.cpp.incl" -ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset) { +ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute) { _code = code; _decode_offset = decode_offset; _objects = decode_object_values(obj_decode_offset); + _reexecute = reexecute; decode_body(); } -ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset) { +ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, bool reexecute) { _code = code; _decode_offset = decode_offset; _objects = decode_object_values(DebugInformationRecorder::serialized_null); + _reexecute = reexecute; decode_body(); } @@ -45,8 +47,8 @@ _code = parent->_code; _decode_offset = parent->_sender_decode_offset; _objects = parent->_objects; + _reexecute = false; //reexecute only applies to the first scope decode_body(); - assert(_reexecute == false, "reexecute not allowed"); } @@ -57,7 +59,6 @@ _sender_decode_offset = DebugInformationRecorder::serialized_null; _method = methodHandle(_code->method()); _bci = InvocationEntryBci; - _reexecute = false; _locals_decode_offset = DebugInformationRecorder::serialized_null; _expressions_decode_offset = DebugInformationRecorder::serialized_null; _monitors_decode_offset = DebugInformationRecorder::serialized_null; @@ -67,7 +68,7 @@ _sender_decode_offset = stream->read_int(); _method = methodHandle((methodOop) stream->read_oop()); - _bci = stream->read_bci_and_reexecute(_reexecute); + _bci = stream->read_bci(); // decode offsets for body and sender _locals_decode_offset = stream->read_int();