RFR(s): 8187547: PPC64: icache invalidation is incorrect in some places

Anton Kozlov akozlov at azul.com
Thu Sep 14 13:05:31 UTC 2017


Hi, All!

Icache invalidation range calculation in NativeMovConstReg::set_data_plain and NativeMovConstReg::set_narrow_oop is incorrect and could cause VM crash:

https://bugs.openjdk.java.net/browse/JDK-8187547

I suppose the root is in mismatch of supposed and actual return values of MacroAssembler::patch_set_narrow_oop and MacroAssembler::patch_calculate_address_from_global_toc_at.
These functions takes address of the middle of sequence and expected to return first instruction offset (negative by current implementation). Instead of this, they return `-offset == abs(offset)` and offset to `data` respectively.

Supposed fix: http://cr.openjdk.java.net/~akozlov/8187547/webrev.01/

Thanks,
Anton


More information about the ppc-aix-port-dev mailing list