On Fri, 2 Feb 2024 18:45:22 GMT, Vladimir Kozlov <k...@openjdk.org> wrote:
> I don't see x86 changes. Why? The 2-byte variants for `string_equals`, if they ever existed, seems to be gone: // fast string equals instruct string_equals(rdi_RegP str1, rsi_RegP str2, rcx_RegI cnt, rax_RegI result, legRegD tmp1, legRegD tmp2, rbx_RegI tmp3, rFlagsReg cr) %{ predicate(!VM_Version::supports_avx512vlbw()); match(Set result (StrEquals (Binary str1 str2) cnt)); effect(TEMP tmp1, TEMP tmp2, USE_KILL str1, USE_KILL str2, USE_KILL cnt, KILL tmp3, KILL cr); format %{ "String Equals $str1,$str2,$cnt -> $result // KILL $tmp1, $tmp2, $tmp3" %} ins_encode %{ __ arrays_equals(false, $str1$$Register, $str2$$Register, $cnt$$Register, $result$$Register, $tmp3$$Register, $tmp1$$XMMRegister, $tmp2$$XMMRegister, false /* char */, knoreg); %} ins_pipe( pipe_slow ); %} So AFAICT there is nothing to change on x86. ------------- PR Comment: https://git.openjdk.org/jdk/pull/16995#issuecomment-1924766391