aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/macro.cpp
diff options
context:
space:
mode:
authorkvn <none@none>2008-12-16 12:23:39 -0800
committerkvn <none@none>2008-12-16 12:23:39 -0800
commite36cb96af27e25b69749af8f6eceb54541f1c7af (patch)
treef823c554370b7b9fbfde24350f360be8b82da4a3 /src/share/vm/opto/macro.cpp
parentfbd653c92ed0bc21cb53f91c920bd270f65ae821 (diff)
downloadjdk8u_hotspot-e36cb96af27e25b69749af8f6eceb54541f1c7af.tar.gz
6782820: Server VM fails with "unhandled implicit exception in compiled code"
Summary: Restore the code which sets a control edge for a klass load node. Reviewed-by: never
Diffstat (limited to 'src/share/vm/opto/macro.cpp')
-rw-r--r--src/share/vm/opto/macro.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/share/vm/opto/macro.cpp b/src/share/vm/opto/macro.cpp
index 1152917d9..4d74a434f 100644
--- a/src/share/vm/opto/macro.cpp
+++ b/src/share/vm/opto/macro.cpp
@@ -1724,6 +1724,13 @@ void PhaseMacroExpand::expand_lock_node(LockNode *lock) {
if (klass_node == NULL) {
Node* k_adr = basic_plus_adr(obj, oopDesc::klass_offset_in_bytes());
klass_node = transform_later( LoadKlassNode::make(_igvn, mem, k_adr, _igvn.type(k_adr)->is_ptr()) );
+#ifdef _LP64
+ if (UseCompressedOops && klass_node->is_DecodeN()) {
+ assert(klass_node->in(1)->Opcode() == Op_LoadNKlass, "sanity");
+ klass_node->in(1)->init_req(0, ctrl);
+ } else
+#endif
+ klass_node->init_req(0, ctrl);
}
Node *proto_node = make_load(ctrl, mem, klass_node, Klass::prototype_header_offset_in_bytes() + sizeof(oopDesc), TypeX_X, TypeX_X->basic_type());