On Wed, Jan 19, 2011 at 2:13 AM, Stefano Bonifazi <stefboombas...@gmail.com> wrote: > On 01/18/2011 06:17 PM, Blue Swirl wrote: >> >> On Tue, Jan 18, 2011 at 9:29 AM, Stefano Bonifazi >> <stefboombas...@gmail.com> wrote: >>> >>> Hi all! >>> I am working on qemu-user (qemu-ppc). >>> I'd like to edit the values of target registers during the execution. Can >>> I >>> do that by simply changing the content of env->gpr[] or do these only >>> contain a copy of the values of the registers? >>> In this last case, where are the real values of the target registers >>> stored >>> so that by modifying them I can alter the behavior of the target code >>> execution? >> >> env->gpr is the canonical location, but the translator assigns TCG >> variables to them (cpu_gpr[] in translate.c), so GPR contents may be >> cached to these. But when helpers are called or the TB finishes, >> env->gpr should be valid again. > > Hi! > Thank you for your answer! > So if I understand well if I set env->gpr in a code section where there is > no TCG translation on progress, I can edit directly the target CPU register > right? > Best Regards! > Stefano B. > >
In fact, I need to apologize for my poor comprehension to your questions even after digesting the explinations from Blue Swirl. By tracing code of qemu, "env->gpr" should be able to be modified any place directly(or indirectly) whether the TCG involved or not.