--- old/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2016-04-06 17:17:11.738383517 +0200 +++ new/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2016-04-06 17:17:11.606383516 +0200 @@ -918,7 +918,7 @@ Register cardtable = G5; Register tmp = G1_scratch; Register tmp2 = G3_scratch; - jbyte* byte_map_base = barrier_set_cast(bs)->byte_map_base; + volatile jbyte* byte_map_base = barrier_set_cast(bs)->byte_map_base; Label not_already_dirty, restart, refill, young_card; @@ -928,7 +928,7 @@ __ srl(addr, CardTableModRefBS::card_shift, addr); #endif - AddressLiteral rs(byte_map_base); + AddressLiteral rs((address)byte_map_base); __ set(rs, cardtable); // cardtable := __ ldub(addr, cardtable, tmp); // tmp := [addr + cardtable]