Mercurial > hg > truffle
comparison agent/src/share/classes/sun/jvm/hotspot/runtime/StubRoutines.java @ 674:4948e7dd28dc
6822333: _call_stub_compiled_return address handling in SA is broken causing jstack to hang occasionally
Reviewed-by: kvn, twisti
author | never |
---|---|
date | Fri, 27 Mar 2009 14:37:42 -0700 |
parents | a61af66fc99e |
children | bd02caa94611 |
comparison
equal
deleted
inserted
replaced
673:fbc12e71c476 | 674:4948e7dd28dc |
---|---|
44 | 44 |
45 private static synchronized void initialize(TypeDataBase db) { | 45 private static synchronized void initialize(TypeDataBase db) { |
46 Type type = db.lookupType("StubRoutines"); | 46 Type type = db.lookupType("StubRoutines"); |
47 | 47 |
48 callStubReturnAddressField = type.getAddressField("_call_stub_return_address"); | 48 callStubReturnAddressField = type.getAddressField("_call_stub_return_address"); |
49 // Only some platforms have specif return from compiled to call_stub | 49 // Only some platforms have specific return from compiled to call_stub |
50 try { | 50 try { |
51 callStubCompiledReturnAddressField = type.getAddressField("_call_stub_compiled_return"); | 51 type = db.lookupType("StubRoutines::x86"); |
52 if (type != null) { | |
53 callStubCompiledReturnAddressField = type.getAddressField("_call_stub_compiled_return"); | |
54 } | |
52 } catch (RuntimeException re) { | 55 } catch (RuntimeException re) { |
53 callStubCompiledReturnAddressField = null; | 56 callStubCompiledReturnAddressField = null; |
57 } | |
58 if (callStubCompiledReturnAddressField == null && VM.getVM().getCPU().equals("x86")) { | |
59 throw new InternalError("Missing definition for _call_stub_compiled_return"); | |
54 } | 60 } |
55 } | 61 } |
56 | 62 |
57 public StubRoutines() { | 63 public StubRoutines() { |
58 } | 64 } |