RFR: 8321712: C2: "failed: Multiple uses of register" in C2_MacroAssembler::vminmax_fp [v5]
Sandhya Viswanathan
sviswanathan at openjdk.org
Tue Jan 9 23:46:45 UTC 2024
> The C2_MacroAssembler::vminmax_fp and evminmax_fp were incorrectly checking for the two USE operand registers to be different and thus resulting in assertion failure.
>
> In x86_64.ad:
>
> instruct maxF_reg(legRegF dst, legRegF a, legRegF b, legRegF tmp, legRegF atmp, legRegF btmp) %{
> ...
> effect(USE a, USE b, TEMP tmp, TEMP atmp, TEMP btmp);
> ...
> __ vminmax_fp(Op_MaxV, T_FLOAT, $dst$$XMMRegister, $a$$XMMRegister, $b$$XMMRegister, $tmp$$XMMRegister, $atmp$$XMMRegister, $btmp$$XMMRegister, Assembler::AVX_128bit);
> %}
>
>
> Changing the assert in vminmax_fp from:
> assert_different_registers(a, b, tmp, atmp, btmp);
> to:
> assert_different_registers(a, tmp, atmp, btmp);
> assert_different_registers(b, tmp, atmp, btmp);
> fixes the issue.
>
> Similar change done in evminmax_fp.
>
> Please review.
>
> Best Regards,
> Sandhya
Sandhya Viswanathan has updated the pull request incrementally with one additional commit since the last revision:
copyright year update
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/17315/files
- new: https://git.openjdk.org/jdk/pull/17315/files/43462531..05f8cf81
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=17315&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=17315&range=03-04
Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/17315.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17315/head:pull/17315
PR: https://git.openjdk.org/jdk/pull/17315
More information about the hotspot-compiler-dev
mailing list