< prev index next >

src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp

Print this page
rev 9227 : 8143067: aarch64: guarantee failure in javac
Summary: Fix adrp going out of range during code relocation
Reviewed-by: duke

@@ -1227,11 +1227,11 @@
         ExternalAddress cardtable((address) ct->byte_map_base);
 
         f.load_argument(0, card_addr);
         __ lsr(card_addr, card_addr, CardTableModRefBS::card_shift);
         unsigned long offset;
-        __ adrp(rscratch1, cardtable, offset);
+        __ far_adrp(rscratch1, cardtable, offset);
         __ add(card_addr, card_addr, rscratch1);
         __ ldrb(rscratch1, Address(card_addr, offset));
         __ cmpw(rscratch1, (int)G1SATBCardTableModRefBS::g1_young_card_val());
         __ br(Assembler::EQ, done);
 
< prev index next >