Make drreg state restoration without ilist similar to that with ilist
drreg has two state restoration routines, drreg_event_restore_state_with_ilist
and drreg_event_restore_state_without_ilist
. drreg_event_restore_state_with_ilist
uses the ilist to be able to recognize faux spills and restore, which are application instructions that look like a drreg spill/restore (this may happen on AArch64). See this test:
https://github.com/DynamoRIO/dynamorio/blob/f1d496b451eaa6e9aaff7125617030164c6cfdff/suite/tests/client-interface/drreg-test.c#L683. drreg_event_restore_state_without_ilist
uses an old version of the restore logic that does not handle multi-phase drreg use well.
For cases when the ilist is not available, drreg can easily fall back to the same logic as drreg_event_restore_state_with_ilist
minus the faux spill/restore detection.