Summary: | Power PC, xxsel instruction is not always recognized. | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Carl Love <cel> |
Component: | vex | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 3.12 SVN | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Carl Love
2016-11-07 19:46:54 UTC
The issue is the opc2 field is used by the xxsel instruction to specify an additional operand. That leaves a subset of the opc2 field for the actual opcode. The function get_VSX60_opc2(UInt opc2_full) in VEX/priv/guest_ppc_toIR.c is used to determine the instruction in opc2 field for instructions that have an opc1 field of 0x60. The 10-bit opc2 field is masked to get the actual opcode. There are several different masks that are used for the various forms. The issue is that a match was being made on the xxsel instruction depending on the value of the additional opcode. The function was updated to fix the issue. Patch committed VEX commit 3284 Functional change VEX commit 3285 Tweeked the comments so I could fix the Bugzilla number listed in the commit log. Valgrind commit 16119, Update the NEWS file. |