Bug 410764

Summary: BLENDVPD, BLENDVPS, PBLENDVB not implemented in guest_x86
Product: [Developer tools] valgrind Reporter: Eric Reischer <emr150>
Component: generalAssignee: Julian Seward <jseward>
Status: RESOLVED UNMAINTAINED    
Severity: normal CC: tom
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Eric Reischer 2019-08-09 13:20:01 UTC
0f1e2acf (#256968) brought in the BLENDVPD, BLENDVPS, and PBLENDVB opcodes, but these were only added to the amd64 guest, not x86 (which, from what I'm reading, are also valid opcodes in 32-bit mode).  Should probably also add the EXTRACTPS opcode as well, which was also committed in that same batch to only the amd64 guest.
Comment 1 Tom Hughes 2019-08-09 13:41:02 UTC
Our general policy is that new opcodes are only added to the 64 bit backend.

The 32 bit backend is very old and is hard to extend further without a lot of work while the 64 bit backend has been extensively rewritten to better support decoding the large number of new opcodes that have been added.

Further information is available at http://valgrind.org/docs/manual/manual-core.html#manual-core.limits but broadly speaking 32 bit support is frozen at SSSE3 level, plus a few SSE4 instructions needed to be able to run 32 bit programs on MacOS.

The cpuid we report in 32 bit mode should correctly identify what opcodes we support there.
Comment 2 Julian Seward 2019-12-28 16:57:40 UTC
Sorry .. if you want to use instructions after SSSE3, you need
to use the 64-bit port.  There are no plans to backport any such
support to the 32-bit version.