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

Implicit null check is in the wrong place in C1 -UseCompressedOops

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 8u20, 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b08

      Backports

        Description

        [4/2/14, 6:29:26 AM] Tom Rodriguez: The implicit null check is in the wrong place.
        [4/2/14, 6:29:29 AM] Tom Rodriguez: diff -r f83404938588 -r 1b96d1a74514 src/cpu/x86/vm/c1_LIRAssembler_x86.cpp
        --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Apr 01 15:49:13 2014 -0700
        +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Apr 01 19:45:34 2014 -0700
        @@ -800,7 +800,13 @@
                if (UseCompressedOops && !wide) {
                  __ movl(as_Address(addr), (int32_t)NULL_WORD);
                } else {
        +#ifdef _LP64
        + __ xorptr(r10, r10);
        + null_check_here = code_offset();
        + __ movptr(as_Address(addr), r10);
        +#else
                  __ movptr(as_Address(addr), NULL_WORD);
        +#endif
                }
              } else {
                if (is_literal_address(addr)) {

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  iveresov Igor Veresov
                  Reporter:
                  roland Roland Westrelin
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: