On Thu, 26 Nov 2020 at 22:16, Alexander Graf <ag...@csgraf.de> wrote: > cpu_synchronize_state() sets the CPU registers into "dirty" state which > means that env now holds the current copy. On the next entry, we then > sync them back into HVF. > > Without the cpu_synchronize_state() call, HVF never knows that the CPU > state is actually dirty. I guess it could as well live in cpu_reset() > somewhere, but we have to get the state switched over to dirty one way > or another. > > One interesting thing to note here is that the CPU actually comes up in > "dirty" after init. But init is done on realization already. I'm not > sure why we lose the dirty state in between that and the reset.
Yeah, it sounds like you need to figure out where the dirty to not-dirty transitions ought to be happening rather than just fudging things here... -- PMM