DynamoRIO / DynamoRIO/dynamorio

Provide support in drreg to spill something other than GPRs, cross-app instructions.

Open
#3,844 51 comments 0 reactions 1 assignee Claimed by @johnfxgalea View on GitHub
Component-API Component-Extension Type-Feature
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.