RFR: 8347794: RISC-V: Add Zfhmin - Float cleanup
Robbin Ehn
rehn at openjdk.org
Wed Jan 15 10:17:57 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
-------------
Commit messages:
- Baseline
Changes: https://git.openjdk.org/jdk/pull/23130/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23130&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8347794
Stats: 536 lines in 8 files changed: 303 ins; 133 del; 100 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