]> git.ipfire.org Git - thirdparty/valgrind.git/commit
A SSE2 only CPU was reported to the guest as a SSE3 CPU.
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Wed, 17 Jun 2015 21:33:19 +0000 (21:33 +0000)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Wed, 17 Jun 2015 21:33:19 +0000 (21:33 +0000)
commit876b209dd4ff8dc3d49522017788c11e770e8873
treeba47803378c2a550f022b637ea013ff03a325506
parent3cb25d709e4b1f4d0d6dfb3f436364fe89d318c2
A SSE2 only CPU was reported to the guest as a SSE3 CPU.
The guest code might then select functions calling invalid
instructions.
E.G. giving:
  vex x86->IR: unhandled instruction bytes: 0x66 0xF 0x3A 0xF
  ==13094== valgrind: Unrecognised instruction at address 0x496d4d3.
  ==13094==    at 0x496D4D3: __mempcpy_ssse3 (memcpy-ssse3.S:771)
  ==13094==    by 0x125E0B: ??? (in /bin/dash)
as the host hw cap is not SSE3 enabled, while the guest believes
SSE3 can be used.

So, change CPUID so as to report an SSE3 if the hw is SSE3,
and otherwise SSE1 or lower.

(an SSE2 cpu might be added later on)

git-svn-id: svn://svn.valgrind.org/vex/trunk@3153
VEX/priv/guest_x86_defs.h
VEX/priv/guest_x86_helpers.c
VEX/priv/guest_x86_toIR.c