RFR: 8328998: Encoding support for Intel APX extended general-purpose registers [v17]
Jatin Bhateja
jbhateja at openjdk.org
Fri May 10 05:26:07 UTC 2024
On Fri, 10 May 2024 05:07:21 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> In general, the legacy mode will be set to true whenever UseAVX < 3, due to logic in the InstructionAttr ctor.
>>
>> `_legacy_mode(legacy_mode || UseAVX < 3`
>
> PFA a test point depicting the problem.
> [insertQ_map3_eevex.txt](https://github.com/openjdk/jdk/files/15270533/insertQ_map3_eevex.txt)
For previously attached test point, we see illegal instruction encoding with UseAVX=0
Illegal instruction at address = 7f147a64af08: 66 d5 18 0f 3a 22 c0 01 f3 0f 7f 46 10 d5 10
Image name: not from an image
If you believe your application should attempt to execute
this illegal instruction (and others that may be present),
Then use this knob: -emit-illegal-insts 0
and this error message will be avoided.
SDE ERROR: Illegal instruction at address = 7f147a64af08: 66 d5 18 0f 3a 22 c0 01 f3 0f 7f 46 10 d5 10
PINSRQ being a legacy MAP3 instruction should be promoted to Extended EVEX encoding, in this case an incorrect REX2 prefix is being emitted.
`Command line: sde -dmr -- java -XX:-TieredCompilation -Xbatch --add-modules=jdk.incubator.vector -XX:UseAVX=0 -XX:CompileCommand=Print,insertQ::micro -cp . insertQ`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18476#discussion_r1596272481
More information about the hotspot-compiler-dev
mailing list