DynamoRIO / DynamoRIO/dynamorio
x86_64 encoder does not report unencodable register operands.
Open
Component-IR
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
**Describe the bug**
Originally discussed in https://groups.google.com/g/dynamorio-users/c/YKG_b8R8LoE/m/OGTTOv8LBAAJ.
The register operand `%ah` can not be encoded in instructions like `mov (%r13)[1byte] -> %ah` because the REX prefix is needed to encode `%r13`.
Instead of reporting this error, the encoder silently encodes it into `mov 0x00(%r13)[1byte] -> %spl`.
Contributor guide
Assessment
This issue has not been assessed yet.