RFR (S): 8151002: Make Assembler methods vextract and vinsert match actual instructions

Mikael Vidstedt mikael.vidstedt at oracle.com
Wed Mar 2 00:25:37 UTC 2016

Please review the following change which updates the various vextract* 
and vinsert* methods in assembler_x86 & macroAssembler_x86 to better 
match the real HW instructions, which also has the benefit of providing 
the full functionality/flexibility of the instructions where earlier 
only some specific modes were supported. Put differently, with this 
change it's much easier to correlate the methods to the Intel manual and 
understand what they actually do.

Specifically, the vinsert* family of instructions take three registers 
and an immediate which decide how the bits should be shuffled around, 
but without this change the method only allowed two of the registers to 
be specified, and the immediate was hard-coded to 0x01.

Bug: https://bugs.openjdk.java.net/browse/JDK-8151002
Webrev: http://cr.openjdk.java.net/~mikael/webrevs/8151002/webrev.00/webrev/

Special thanks to Mike Berg for helping discuss, co-develop, and test 
the change!


More information about the hotspot-compiler-dev mailing list