RFR: 8347794: RISC-V: Add Zfhmin - Float cleanup [v5]
Robbin Ehn
rehn at openjdk.org
Tue Jan 21 08:28:22 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 seven additional commits since the last revision:
- Fixed type Rs2
- Merge branch 'master' into zfhmin
- 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/a63ee5cd..e6255851
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=23130&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=23130&range=03-04
Stats: 4335 lines in 29 files changed: 2046 ins; 1598 del; 691 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