aboutsummaryrefslogtreecommitdiff
path: root/agent
diff options
context:
space:
mode:
authorkvn <none@none>2011-02-14 14:36:29 -0800
committerkvn <none@none>2011-02-14 14:36:29 -0800
commit67feb925fe35d77a44c4a49a86e5946230350530 (patch)
treed4e05d580b716ad305075092bdc649529743404c /agent
parentc611e65f2f85ea27c25e83a2e20b9862c8790a98 (diff)
parentad1a4474dd225db799d603722eb7437fbb8dc936 (diff)
Merge
Diffstat (limited to 'agent')
-rw-r--r--agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java28
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));
}
-
}
}