RFR: 8310276: RISC-V: Make use of shadd macro-assembler function when possible
Dingli Zhang
dzhang at openjdk.org
Mon Jun 19 07:04:41 UTC 2023
Hi all,
We can use `shadd` to replace the following command combinations when
appropriate:
slli(rd1, rs1, imm)
add(rd2, rs2, rs3)
Conditions to be met:
1. Rd1 and rs3/rs2 are the same register;
2. The data given to rd1 by the `slli` instruction is not used later;
3. Mask sure rs2, rs3 are not the same register, so that the above instruction
combination will actually be executed if zba is not enabled, whereas if rs2,
rs3 are the same register then `slli` will destroy the value of rs3;
4. The value of `imm` is in the range of [1, 3], so that if zba is enabled,
it will use sh1add, sh2add, sh3add instructions instead of the above two
instructions.
### Testing:
- tier1-3 on QEMU-System w/ and w/o UseZba (release build)
- tier1-3 tests on unmatched board w/o UseZba (release build)
-------------
Commit messages:
- 8310276: RISC-V: Make use of shadd macro-assembler function when possible
Changes: https://git.openjdk.org/jdk/pull/14535/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14535&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8310276
Stats: 5 lines in 3 files changed: 1 ins; 2 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/14535.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14535/head:pull/14535
PR: https://git.openjdk.org/jdk/pull/14535
More information about the hotspot-dev
mailing list