RFR: 8266530: HotSpot changes for JEP 306 [v5]
David Holmes
dholmes at openjdk.java.net
Thu May 13 01:45:09 UTC 2021
On Tue, 11 May 2021 23:31:20 GMT, Joe Darcy <darcy at openjdk.org> wrote:
>> Please review these VM changes in support of JEP 306: Restore Always-Strict Floating-Point Semantics.
>>
>> JEP 306 is considering the following changes to the JVMS:
>>
>> 1) Require "strict" floating-point evaluation in all circumstances.
>> 2) For class file version 61 and higher, undefine ACC_STRICT, moving that bit position back to undefined for methods. For class file versions, 46 through, ACC_STRICT would remain a defined modifier.
>>
>> Since all floating-point evaluation is done strictly, a modifier bit is not needed to indicate this anymore. There are a few mandated modifier checks when ACC_STRICT is defined, such as not allowing an "abstract strictfp" method. These checks in classFileParser are now conditional on the class file version.
>>
>> The tests verify "abstract strictfp" triggers a ClassFormatError for version 60 and does not trigger an error or exception for version 61. (As an undefined bit in version 61, the VM is supposed to ignore it.)
>>
>> FYI, the javac and core libs portions of JEP 306 are out for review under https://github.com/openjdk/jdk/pull/3831.
>>
>> The HotSpot and javac/core libs parts of JEP 306 are independent in that neither relies on the other:
>> * javac will not output class files which expose the difference in class parsing behavior; the ACC_STRICT modifier will not be set in any version 61 class file emitted by javac.
>> * since HotSpot already does all floating-point evaluation strictly, no changes are needed to support strict evaluation.
>
> Joe Darcy has updated the pull request incrementally with one additional commit since the last revision:
>
> Make methods strict on IA32.
Sub-task "JDK-8266950: Remove vestigial support for non-strict floating-point execution" is being used to change the hotspot code so that `is_strict` is replaced by true and the resulting code modified accordingly. This PR will focus only on the handling of the ACC_STRICT flag during classfile parsing.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3891
More information about the hotspot-runtime-dev
mailing list