8249781: AArch64: AOT compiled code crashes if C2 allocates r27

Reviewed-by: aph
This commit is contained in:
Nick Gasson 2020-07-24 11:28:28 +08:00
parent df923ff2fb
commit 22006dceb4

View File

@ -1099,7 +1099,7 @@ source %{
// r27 is not allocatable when compressed oops is on and heapbase is not
// zero, compressed klass pointers doesn't use r27 after JDK-8234794
if (UseCompressedOops && CompressedOops::ptrs_base() != NULL) {
if (UseCompressedOops && (CompressedOops::ptrs_base() != NULL || UseAOT)) {
_NO_SPECIAL_REG32_mask.Remove(OptoReg::as_OptoReg(r27->as_VMReg()));
_NO_SPECIAL_REG_mask.SUBTRACT(_HEAPBASE_REG_mask);
_NO_SPECIAL_PTR_REG_mask.SUBTRACT(_HEAPBASE_REG_mask);