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

Refactor stack-locking path in C2_MacroAssembler::fast_unlock()

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 20
    • 17, 19, 20
    • hotspot
    • None
    • b25
    • x86, x86_64
    • generic

    Description

      The code in C2_MacroAssembler::fast_unlock() has several (minor) issues:
      - The stack-locking path for x86_32 is not under UseHeavyMonitors - it would be executed even when stack-locking is disabled.
      - The stack-locking paths are the same for x86_32 and x86_64 - they can be merged into a common path.
      - In x86_32 path, we call get_thread(boxReg) which is totally bogus because we clear boxReg right afterwards with xorptr(boxReg, boxReg).
      - In x86_32 path, the CheckSucc label is identical to the DONE label, and in-fact CheckSucc is only ever really used in the x86_64 path and can be moved there.

      Attachments

        Issue Links

          Activity

            People

              rkennke Roman Kennke
              rkennke Roman Kennke
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: