There is now a qemu plugin interface function qemu_plugin_register_vcpu_mem_cb 
which registers a plugin-side callback. This callback is later invoked at the 
start of each emulated instruction, and it receives information about memory 
addresses and read/write indicators.

I'm wondering how hard it is to add a similar callback to expose register 
addresses and read/write indicators.  For example, executing `add r3, r1, $1` 
would generate two callbacks, one {write r3} and the other {read r1}. I'd like 
this for all kinds of registers such as simd regs, and, gulp, flags registers.

With this information ISA simulators could examine the data flow graph and 
register dependencies.

I'm not asking for register contents; we don't get memory contents either!

I gather there is some concern about exposing too much functionality to the 
plugin API, as a plugin might then be used to subvert some aspects of the GPL.  
I don't understand the details of this concern, nor know where the "line in the 
sand" is.

Robert Henry

Reply via email to