Mercurial > hg > graal-jvmci-8
diff src/cpu/sparc/vm/sparc.ad @ 20290:85c339200299
8029443: 'assert(klass->is_loader_alive(_is_alive)) failed: must be alive' during VM_CollectForMetadataAllocation
Summary: Added missing metadata relocation to 'loadConP_no_oop_cheap' on Sparc if the pointer is referring to a Klass. Added jtreg test.
Reviewed-by: kvn
author | thartmann |
---|---|
date | Wed, 06 Aug 2014 08:47:40 +0200 |
parents | 0bf37f737702 |
children | 318cc6fdae90 |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/sparc.ad Thu Jul 31 19:59:36 2014 +0200 +++ b/src/cpu/sparc/vm/sparc.ad Wed Aug 06 08:47:40 2014 +0200 @@ -6184,7 +6184,11 @@ ins_cost(DEFAULT_COST * 3/2); format %{ "SET $con,$dst\t! non-oop ptr" %} ins_encode %{ - __ set($con$$constant, $dst$$Register); + if (_opnds[1]->constant_reloc() == relocInfo::metadata_type) { + __ set_metadata_constant((Metadata*)$con$$constant, $dst$$Register); + } else { + __ set($con$$constant, $dst$$Register); + } %} ins_pipe(loadConP); %}