RFR: 8193193: immByteMapBase operand generated for non-CardTable GCs

Roman Kennke rkennke at redhat.com
Thu Dec 7 17:15:08 UTC 2017


This is aarch64-only.


The operand immByteMapBase in aarch64 blindly casts the BarrierSet to 
CardTableModRefBS and checks if the byte_map_base field points into the 
heap. This sometimes generates the operand for non-CTMRBS GCs too: 
->byte_map_base will resolve some random ptr, and if that happens to be 
inside the heap, it will generate the operand, causing all sorts of 
weird trouble.

The fix is to check the BS type before casting:

http://cr.openjdk.java.net/~rkennke/aarch64-ctmrbs/webrev.00/

Builds+passes relevant tests that have been failing before.

Ok to push it?

Roman


More information about the hotspot-compiler-dev mailing list