Provide support in drreg to spill something other than GPRs, cross-app instructions.
Specifically currently hitting this issue is #2985 (closed). 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 (closed) 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?