8139906: assert(src->section_index_of(target) == CodeBuffer::SECT_NONE) failed: sanity
authorthartmann
Fri, 24 Feb 2017 11:52:04 +0100
changeset 44082 95196492dc31
parent 44081 5dbc6c93f9bf
child 44083 28054923c3a6
8139906: assert(src->section_index_of(target) == CodeBuffer::SECT_NONE) failed: sanity Summary: The card table address used in the g1_post_barrier_slow stub should not be marked as relocatable. Reviewed-by: kvn
hotspot/src/cpu/arm/vm/c1_Runtime1_arm.cpp
--- a/hotspot/src/cpu/arm/vm/c1_Runtime1_arm.cpp	Thu Feb 23 10:08:51 2017 +0100
+++ b/hotspot/src/cpu/arm/vm/c1_Runtime1_arm.cpp	Fri Feb 24 11:52:04 2017 +0100
@@ -618,7 +618,7 @@
         Address buffer(Rthread, in_bytes(JavaThread::dirty_card_queue_offset() +
                                          DirtyCardQueue::byte_offset_of_buf()));
 
-        AddressLiteral cardtable((address)ct->byte_map_base);
+        AddressLiteral cardtable((address)ct->byte_map_base, relocInfo::none);
         assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code");
 
         // save at least the registers that need saving if the runtime is called
@@ -645,7 +645,7 @@
         // Note: there is a comment in x86 code about not using
         // ExternalAddress / lea, due to relocation not working
         // properly for that address. Should be OK for arm, where we
-        // explicitly specify that 'cartable' has a relocInfo::none
+        // explicitly specify that 'cardtable' has a relocInfo::none
         // type.
         __ lea(r_card_base_1, cardtable);
         __ add(r_card_addr_0, r_card_base_1, AsmOperand(r_obj_0, lsr, CardTableModRefBS::card_shift));