DynamoRIO / DynamoRIO/dynamorio
Provide support in drreg to spill something other than GPRs, cross-app instructions.
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
Specifically currently hitting this issue is #2985. The case needs some capability to spill - in this case - xmm and a mask register value, cross-app instruction (hence mcontext can not be used). This issue covers providing a method to spill into the TLS data that drreg already has, managed by drmgr.
**Interface TBD:**
_Specifically allow for reserving xmm and mask registers? Also needs an unreserve method._:
`drreg_reserve_xmm_register()` + `drreg_reserve_mask_register()`?
_Instructing drreg to spill arbitrary number of bytes from opnd_t, or opnd_size_in_bytes() of opnd_t? Also needs a restore method._:
`drreg_reserve_spill_bytes()?`
_Other ideas?_
Case #2985 needs this cross-app, hence no automatic management is needed. Should new API be written to provide automatic spill/restore management when called from insertion phase?
Contributor guide
Assessment
This issue has not been assessed yet.