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

deopt blob is testing wrong register on 64-bit x86

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: hs14
    • Fix Version/s: hs15
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b05
    • CPU:
      x86
    • OS:
      solaris_9

      Backports

        Description

        The change for 5108146 added a new test in the deopt blob for x86_64 for use the by 64-bit version of C1. During the time that it was being developed and it's final push register usage in the deopt blob was changed so that now the deopt blob is testing the wrong register.

        diff --git a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
        --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
        +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp
        @@ -2691,7 +2691,7 @@ void SharedRuntime::generate_deopt_blob(
           __ mov(rdi, rax);
                                                                                                                                             
            Label noException;
        - __ cmpl(r12, Deoptimization::Unpack_exception); // Was exception pending?
        + __ cmpl(r14, Deoptimization::Unpack_exception); // Was exception pending?
           __ jcc(Assembler::notEqual, noException);
           __ movptr(rax, Address(r15_thread, JavaThread::exception_oop_offset()));
           // QQQ this is useless it was NULL above

        So far for whatever reason r12 never contains the same value as Deoptimization::Unpack_exception when using C2 but it's a bug waiting to happen.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  never Tom Rodriguez
                  Reporter:
                  never Tom Rodriguez
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: