| Summary: | vex amd64->IR: CMPS without rep prefix is not handled | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | Ignacio Losiggio <iglosiggio> |
| Component: | vex | Assignee: | Julian Seward <jseward> |
| Status: | REPORTED --- | ||
| Severity: | normal | CC: | iglosiggio |
| Priority: | NOR | ||
| Version First Reported In: | 3.14.0 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | All | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Patch fixing the issue like it was fixed in movs
Example strcmp implementation using cmpsb without a rep prefix |
||
Created attachment 119206 [details]
Example strcmp implementation using cmpsb without a rep prefix
Added example code.
|
Created attachment 119205 [details] Patch fixing the issue like it was fixed in movs SUMMARY The instruction CMPS{B,W,D,Q} can be used with or without prefix, the x86->IR valgrind backend supports the instruction without prefix but the amd64 one does not. Attached to the issue is a patch fixing it. STEPS TO REPRODUCE 1. Write any small program that uses cmps{b,w,d,q} on amd64. OBSERVED RESULT VEX will say that the instructions is not handled. EXPECTED RESULT Correct handling of the instruction like in the x86->IR backend