DynamoRIO / DynamoRIO/dynamorio
Add size to instr_compute_address()
Open
Component-API
Component-IR
Type-Feature
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
Split from #2946
The xsave instruction's actual memory written varies dynamically, meaning that opnd_get_size() (which today, and probably forever, bails and returns 0) and drutil_opnd_mem_size_in_bytes() (fixed for some cases in #3463) are not capable of figuring out the size.
We could consider something parallel to instr_compute_address() which takes in an mcontext: drutil_opnd_compute_size() or sthg. But given multi-address operands (such as VSIB, or xsave again if we want to skip gaps: #3467), that would duplicate the iteration logic. It seems best to augment instr_compute_address() with sizes.
Contributor guide
Assessment
This issue has not been assessed yet.