RFR: 8310276: RISC-V: Make use of shadd macro-assembler function when possible

Vladimir Kempik vkempik at openjdk.org
Mon Jun 19 18:41:08 UTC 2023


On Mon, 19 Jun 2023 06:57:34 GMT, Dingli Zhang <dzhang at openjdk.org> wrote:

> 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.  Make 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/rs2;
> 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)

Marked as reviewed by vkempik (Committer).

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

PR Review: https://git.openjdk.org/jdk/pull/14535#pullrequestreview-1486703747


More information about the hotspot-dev mailing list