diff options
author | kvn <none@none> | 2011-02-14 14:36:29 -0800 |
---|---|---|
committer | kvn <none@none> | 2011-02-14 14:36:29 -0800 |
commit | 67feb925fe35d77a44c4a49a86e5946230350530 (patch) | |
tree | d4e05d580b716ad305075092bdc649529743404c /agent | |
parent | c611e65f2f85ea27c25e83a2e20b9862c8790a98 (diff) | |
parent | ad1a4474dd225db799d603722eb7437fbb8dc936 (diff) |
Merge
Diffstat (limited to 'agent')
-rw-r--r-- | agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java b/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java index 984161314..9de5f3005 100644 --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, Oracle and/or its affiliates. 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 @@ -31,8 +31,7 @@ import sun.jvm.hotspot.types.*; /** Very minimal port for now to get frames working */ public class StubRoutines { - private static AddressField callStubReturnAddressField; - private static AddressField callStubCompiledReturnAddressField; + private static AddressField callStubReturnAddressField; static { VM.registerVMInitializedObserver(new Observer() { @@ -44,20 +43,7 @@ public class StubRoutines { private static synchronized void initialize(TypeDataBase db) { Type type = db.lookupType("StubRoutines"); - callStubReturnAddressField = type.getAddressField("_call_stub_return_address"); - // Only some platforms have specific return from compiled to call_stub - try { - type = db.lookupType("StubRoutines::x86"); - if (type != null) { - callStubCompiledReturnAddressField = type.getAddressField("_call_stub_compiled_return"); - } - } catch (RuntimeException re) { - callStubCompiledReturnAddressField = null; - } - if (callStubCompiledReturnAddressField == null && VM.getVM().getCPU().equals("x86")) { - throw new InternalError("Missing definition for _call_stub_compiled_return"); - } } public StubRoutines() { @@ -65,20 +51,10 @@ public class StubRoutines { public boolean returnsToCallStub(Address returnPC) { Address addr = callStubReturnAddressField.getValue(); - boolean result = false; - if (addr == null) { - result = (addr == returnPC); - } else { - result = addr.equals(returnPC); - } - if (result || callStubCompiledReturnAddressField == null ) return result; - // Could be a return to compiled code return point - addr = callStubCompiledReturnAddressField.getValue(); if (addr == null) { return (addr == returnPC); } else { return (addr.equals(returnPC)); } - } } |