RFR: 8333382: [s390x] Enhance popcnt Instruction to use Z15 facilities

Amit Kumar amitkumar at openjdk.org
Fri Jun 7 13:48:13 UTC 2024


On Fri, 7 Jun 2024 13:18:35 GMT, Lutz Schmidt <lucy at openjdk.org> wrote:

>> We need to move popcnt instruction implementation out of s390.ad file as it is required to be required some methods present in [JDK-8331126.](https://bugs.openjdk.org/browse/JDK-8331126)
>> 
>> 
>> When the miscellaneous-instruction-extensions facility 3 is not installed or bit 0 of the M3
>>  field is zero, a count of the number of one bits in each of the eight bytes of general register
>>  R2 is placed into the corresponding byte of general register R1. Each byte of general register 
>> R1 is an 8-bit binary integer in the range of 0-8.
>> 
>> 
>> 
>> When the miscellaneous-instruction-extensions facility 3 is installed and bit 0 of the M3 field
>> is one, a count of the total number of one bits in the 64-bit general register R2 is placed into 
>> general register R1. The result is a 64-bit unsigned integer in the range 0 to 64.
>> 
>> 
>> Performed tier1 test on fastdebug build and didn't see any regression.
>
> src/hotspot/cpu/s390/s390.ad line 10757:
> 
>> 10755: 
>> 10756:     // Prefer compile-time assertion over run-time SIGILL.
>> 10757:     assert(VM_Version::has_PopCount(), "bad predicate for popCountL");
> 
> Duplicate check! But you may want to check for different registers (if you don't trust the effect().

I can add assert. But there is already one assert to check this in `macroAssembler_s390.cpp` file. Do you want one more here as well ?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19509#discussion_r1631239851


More information about the hotspot-dev mailing list