Mercurial > hg > truffle
comparison agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java @ 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 | a61af66fc99e |
children | 148e5441d916 |
comparison
equal
deleted
inserted
replaced
930:357d4e2eb4dd | 931:72088be4b386 |
---|---|
1 /* | 1 /* |
2 * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. | 2 * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
257 public ScopeDesc getScopeDescAt(Address pc) { | 257 public ScopeDesc getScopeDescAt(Address pc) { |
258 PCDesc pd = getPCDescAt(pc); | 258 PCDesc pd = getPCDescAt(pc); |
259 if (Assert.ASSERTS_ENABLED) { | 259 if (Assert.ASSERTS_ENABLED) { |
260 Assert.that(pd != null, "scope must be present"); | 260 Assert.that(pd != null, "scope must be present"); |
261 } | 261 } |
262 return new ScopeDesc(this, pd.getScopeDecodeOffset()); | 262 return new ScopeDesc(this, pd.getScopeDecodeOffset(), pd.getReexecute()); |
263 } | 263 } |
264 | 264 |
265 /** This is only for use by the debugging system, and is only | 265 /** This is only for use by the debugging system, and is only |
266 intended for use in the topmost frame, where we are not | 266 intended for use in the topmost frame, where we are not |
267 guaranteed to be at a PC for which we have a PCDesc. It finds | 267 guaranteed to be at a PC for which we have a PCDesc. It finds |
289 return NULL for compiled methods which don't have any | 289 return NULL for compiled methods which don't have any |
290 ScopeDescs! */ | 290 ScopeDescs! */ |
291 public ScopeDesc getScopeDescNearDbg(Address pc) { | 291 public ScopeDesc getScopeDescNearDbg(Address pc) { |
292 PCDesc pd = getPCDescNearDbg(pc); | 292 PCDesc pd = getPCDescNearDbg(pc); |
293 if (pd == null) return null; | 293 if (pd == null) return null; |
294 return new ScopeDesc(this, pd.getScopeDecodeOffset()); | 294 return new ScopeDesc(this, pd.getScopeDecodeOffset(), pd.getReexecute()); |
295 } | 295 } |
296 | 296 |
297 public Map/*<Address, PcDesc>*/ getSafepoints() { | 297 public Map/*<Address, PcDesc>*/ getSafepoints() { |
298 Map safepoints = new HashMap(); // Map<Address, PcDesc> | 298 Map safepoints = new HashMap(); // Map<Address, PcDesc> |
299 sun.jvm.hotspot.debugger.Address p = null; | 299 sun.jvm.hotspot.debugger.Address p = null; |