8193193: AArch64: immByteMapBase operand generated for non-CardTable GCs
Reviewed-by: aph
--- a/src/hotspot/cpu/aarch64/aarch64.ad Tue Dec 19 19:55:23 2017 -0800
+++ b/src/hotspot/cpu/aarch64/aarch64.ad Tue Dec 05 10:43:23 2017 +0000
@@ -5844,8 +5844,8 @@
operand immByteMapBase()
%{
// Get base of card map
- predicate((jbyte*)n->get_ptr() ==
- ((CardTableModRefBS*)(Universe::heap()->barrier_set()))->byte_map_base);
+ predicate(Universe::heap()->barrier_set()->is_a(BarrierSet::CardTableModRef) &&
+ (jbyte*)n->get_ptr() == ((CardTableModRefBS*)(Universe::heap()->barrier_set()))->byte_map_base);
match(ConP);
op_cost(0);