RFR: 8316181: Move the fast locking implementaiton out of the .ad files

Stefan Karlsson stefank at openjdk.org
Wed Sep 13 11:45:55 UTC 2023


Some platforms put the fast locking implementation in the `C2_MacroAssembler` class, while others have it in the .ad files. I'd like to propose that we unify this a bit and move the code out of the .ad files.

The benefit is consistency between the platforms but also that it is easier to work with the C++ code when it is in plain C++ files and not in the .ad files.

The implementation is a pure copy of the code except that the section:

    C2_MacroAssembler _masm(&cbuf);
    Register oop = as_Register($object$$reg);
    Register box = as_Register($box$$reg);
    Register disp_hdr = as_Register($tmp$$reg);
    Register tmp = as_Register($tmp2$$reg);


has been replaced with:

  Register oop = objectReg;
  Register box = boxReg;
  Register disp_hdr = tmpReg;
  Register tmp = tmp2Reg;


and the references to `__ ` have been removed.

This change affects AArch64 and RISC-V

Tested with tier1-3 on AArch64

This PR depends on #15709

-------------

Depends on: https://git.openjdk.org/jdk/pull/15709

Commit messages:
 - Move fast lock/unlock out of riscv.ad
 - Move fast lock/unlock out of aarch64.ad

Changes: https://git.openjdk.org/jdk/pull/15712/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15712&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8316181
  Stats: 848 lines in 6 files changed: 431 ins; 413 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/15712.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15712/head:pull/15712

PR: https://git.openjdk.org/jdk/pull/15712


More information about the hotspot-compiler-dev mailing list