RFR: 8347794: RISC-V: Add Zfhmin - Float cleanup [v4]

Robbin Ehn rehn at openjdk.org
Mon Jan 20 13:48:51 UTC 2025


> Hey, please consider.
> 
> I'm looking making RVA23 support complete and I was looking into adding Zfhmin.
> I notice Zfh instructions didn't have any asserts checking if this extensions was enabled.
> I then notice that we had the inferior instruction description using a funct7 instead of FMT + funct5.
> We also had this same format repeated many times.
> 
> This patch takes all instructions format duplicates and replaces them with 'fp_base'.
> fadd_s is thus described in code as:
> `fp_base<S_32_sp, 0b00000>(Rd, Rs1, Rs2, rm);`
> Instead of:
> `INSN(fadd_s,   0b1010011, 0b0000000);`
> 
> It then moves zfh/zfhmin to a sepererate section and assert checks them.
> 
> Also as a bonus RoundingMode uses camel case while fclass_mask C, style.
> So I changed fclass_mask to FClassBit, now thinking about it not sure if it should be bit or mask.
> As in the context of the instruction fclass it is a bit, but when using the helpers e.g. zero it's a mask.
> 
> Tested:
> jdk/java/lang/Math
> jdk/java/util/Formatter/
> jdk/java/lang/Float/
> jdk/java/lang/Double/
> hotspot/jtreg/compiler/floatingpoint/
> hotspot/jtreg/compiler/c2/FloatingPointFoldingTest.java
> hotspot/jtreg/compiler/eliminateAutobox/
> hotspot/jtreg/vmTestbase/jit/
> 
> And tier1 twice, no FP issues. (Using UseZfh/min)
> 
> Thanks, Robbin

Robbin Ehn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:

 - Fix nit
 - Merge branch 'master' into zfhmin
 - FClassBits
 - Merge branch 'master' into zfhmin
 - Baseline

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23130/files
  - new: https://git.openjdk.org/jdk/pull/23130/files/2eb4fa21..a63ee5cd

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23130&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23130&range=02-03

  Stats: 806 lines in 49 files changed: 509 ins; 138 del; 159 mod
  Patch: https://git.openjdk.org/jdk/pull/23130.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23130/head:pull/23130

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


More information about the hotspot-dev mailing list