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