aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/macro.cpp
diff options
context:
space:
mode:
authorkvn <none@none>2008-06-20 11:10:05 -0700
committerkvn <none@none>2008-06-20 11:10:05 -0700
commit12e59e916ec5f47c9fb34e7ea1afe3aac1b9b253 (patch)
tree43137b1f40cb9b3c2a96bbc153afa99aaf26712e /src/share/vm/opto/macro.cpp
parent172640c9f78c53c3817f4c9bf246d73cb925b7d2 (diff)
downloadjdk8u_hotspot-12e59e916ec5f47c9fb34e7ea1afe3aac1b9b253.tar.gz
6715633: when matching a memory node the adr_type should not change
Summary: verify the adr_type of a mach node was not changed Reviewed-by: rasbold, never
Diffstat (limited to 'src/share/vm/opto/macro.cpp')
-rw-r--r--src/share/vm/opto/macro.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/share/vm/opto/macro.cpp b/src/share/vm/opto/macro.cpp
index 7ac6b320e..fde6b01a4 100644
--- a/src/share/vm/opto/macro.cpp
+++ b/src/share/vm/opto/macro.cpp
@@ -1674,7 +1674,14 @@ bool PhaseMacroExpand::expand_macro_nodes() {
success = eliminate_locking_node(n->as_AbstractLock());
break;
default:
- assert(false, "unknown node type in macro list");
+ if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) {
+ _igvn.add_users_to_worklist(n);
+ _igvn.hash_delete(n);
+ _igvn.subsume_node(n, n->in(1));
+ success = true;
+ } else {
+ assert(false, "unknown node type in macro list");
+ }
}
assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count");
progress = progress || success;