In a number of vector related instruction encoders in assembler_x86.cpp we check the validity of the "nds" argument, and fall back to encoding a zero if it is invalid. This appears to be a copy/paste error and should be fixed. As an example we have this in Assembler::vinsertf32x4h:
int nds_enc = nds->is_valid() ? nds->encoding() : 0;
But nds must always be a valid register, and if it's not then encoding a zero will not improve the situation.
int nds_enc = nds->is_valid() ? nds->encoding() : 0;
But nds must always be a valid register, and if it's not then encoding a zero will not improve the situation.
- duplicates
-
JDK-8151409 Rearrange vextract and vinsert methods in assembler/macroAssembler
-
- Closed
-
- relates to
-
JDK-8265154 vinserti128 operand mix up for KNL platforms
-
- Resolved
-
-
JDK-8151409 Rearrange vextract and vinsert methods in assembler/macroAssembler
-
- Closed
-