RFR: 8349686: [s390x] C1: Improve Class.isInstance intrinsic [v4]

Amit Kumar amitkumar at openjdk.org
Thu Feb 13 12:54:12 UTC 2025


On Thu, 13 Feb 2025 11:19:04 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:

>> src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3674:
>> 
>>> 3672:                                                    Register r_temp2,
>>> 3673:                                                    Register r_temp3) {
>>> 3674:   assert_different_registers(r_sub_klass, r_super_klass, r_result, r_temp1, r_temp2, r_temp3, Z_R0_scratch);
>> 
>> Better use `LOCGHI` further down and avoid use of `Z_R0_scratch`. 
>> You are using `LOCHI` in `Runtime1::generate_code_for()` anyway which implies you are sure the load/store-on-condition facility 2 is installed. In other words: is z13 the minimum H/W version?
>> 
>> Even more simplification: there is no need to set `r_linear_result` conditionally. You set it to 1 and branch to failure if array length is zero. For all other cases, repne_scan() does the right thing.
>
>>  In other words: is z13 the minimum H/W version? 
> 
> umm, no it's not. I will create a macroAssembler method to handle LOCHI.

I have pushed new code and : 
1. did argument shuffling with frame resizing. 
2. made sure that things will not break for hardware older than z13. 

Can you have another look :-)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23535#discussion_r1954440468


More information about the hotspot-dev mailing list