RFR: JDK-8331732 : [PPC64] Unify and optimize code which converts != 0 to 1 [v18]
Martin Doerr
mdoerr at openjdk.org
Sat Jun 29 09:35:20 UTC 2024
On Sat, 29 Jun 2024 06:47:52 GMT, Suchismith Roy <sroy at openjdk.org> wrote:
>> [JDK-8331732](https://bugs.openjdk.org/browse/JDK-8331732)
>> The template interpreter contains branch-free conversion code for T_BOOLEAN (TemplateInterpreterGenerator::generate_result_handler_for).
>>
>> SharedRuntime::generate_native_wrapper uses unoptimized code to "Unpack the native result" for T_BOOLEAN.
>> Power10 has the "setbc" / "setbcr" instruction.
>>
>> A new function has been created for the conversion and use "setbcr" on Power10 (determined by VM_Version::has_brw()) and otherwise the branch-free implementation. We should have a function for 32 and one for 64 bit operations (or one with supports both).
>>
>> The new code for MacroAssembler::verify_secondary_supers_table also uses the new function.
>
> Suchismith Roy has updated the pull request incrementally with one additional commit since the last revision:
>
> default value correction
I don't like a default for `is_64bit`. That increases the risk that somebody uses it incorrectly. It's better to have the user specify it. So, I like the version without default arguments more.
Using R0 internally without passing it as argument would be ok with me. But having the temp argument is fine, too.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/19886#issuecomment-2198066844
More information about the hotspot-dev
mailing list