Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8083005 | emb-9 | Andrew Haley | P4 | Resolved | Fixed | team |
There's a pop() in emit_profile_type with no corresponding push(). If we hit that pop
we will crash immediately.
This is assert-only code so we never see it in production.
#ifdef ASSERT
{
Label ok;
__ ldr(rscratch1, mdo_addr);
__ cbz(rscratch1, ok);
__ cmp(rscratch1, TypeEntries::null_seen);
__ br(Assembler::EQ, ok);
// may have been set by another thread
__ dmb(Assembler::ISHLD);
__ mov_metadata(rscratch1, exact_klass->constant_encoding());
__ ldr(rscratch2, mdo_addr);
__ eor(rscratch2, rscratch1, rscratch2);
__ andr(rscratch2, rscratch2, TypeEntries::type_mask);
__ cbz(rscratch2, ok);
__ stop("unexpected profiling mismatch");
__ bind(ok);
__ pop(tmp);
}
#endif
we will crash immediately.
This is assert-only code so we never see it in production.
#ifdef ASSERT
{
Label ok;
__ ldr(rscratch1, mdo_addr);
__ cbz(rscratch1, ok);
__ cmp(rscratch1, TypeEntries::null_seen);
__ br(Assembler::EQ, ok);
// may have been set by another thread
__ dmb(Assembler::ISHLD);
__ mov_metadata(rscratch1, exact_klass->constant_encoding());
__ ldr(rscratch2, mdo_addr);
__ eor(rscratch2, rscratch1, rscratch2);
__ andr(rscratch2, rscratch2, TypeEntries::type_mask);
__ cbz(rscratch2, ok);
__ stop("unexpected profiling mismatch");
__ bind(ok);
__ pop(tmp);
}
#endif
- backported by
-
JDK-8083005 AARCH64: Stray pop in C1 LIR_Assembler::emit_profile_type
-
- Resolved
-