Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8074723

AARCH64: Stray pop in C1 LIR_Assembler::emit_profile_type

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • None
    • hotspot
    • None
    • b56

        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

              aph Andrew Haley
              aph Andrew Haley
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: