RFR: 8333382: [s390x] Enhance popcnt Instruction to use Z15 facilities [v4]
Andrew Haley
aph at openjdk.org
Mon Jun 10 13:10:17 UTC 2024
On Sat, 8 Jun 2024 14:06:30 GMT, Amit Kumar <amitkumar 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.
>
> Amit Kumar has updated the pull request incrementally with one additional commit since the last revision:
>
> removes warmup code, changes time unit and iteration number
src/hotspot/cpu/s390/macroAssembler_s390.cpp line 5816:
> 5814:
> 5815: assert(r_tmp != noreg, "temp register required for popcnt, for machines < z15");
> 5816: assert_different_registers(r_dst, r_tmp); // if r_src is same as r_tmp, it should be fine
Please move these assertions out of the if block. We want to ensure this for testing purposes at all times, so that even if we test on Z15 we expect it to run on others.
src/hotspot/cpu/s390/macroAssembler_s390.cpp line 5838:
> 5836:
> 5837: assert(r_tmp != noreg, "temp register required for popcnt, for machines < z15");
> 5838: assert_different_registers(r_dst, r_tmp); // if r_src is same as r_tmp, it should be fine
Same here.
src/hotspot/cpu/s390/macroAssembler_s390.hpp line 3:
> 1: /*
> 2: * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
> 3: * Copyright (c) 2016, 2024 SAP SE. All rights reserved.
Add IBM copyright here?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19509#discussion_r1633219071
PR Review Comment: https://git.openjdk.org/jdk/pull/19509#discussion_r1633219593
PR Review Comment: https://git.openjdk.org/jdk/pull/19509#discussion_r1633220458
More information about the hotspot-dev
mailing list