|
From: Nicholas N. <nj...@ca...> - 2004-01-22 22:15:24
|
On Wed, 21 Jan 2004, Jeremy Fitzhardinge wrote: > m_state_static is a holdover from the old code, and isn't really > necessary anymore. It's just used to bootstrap the initial thread > state, but we could do it more directly. I can see how to constant-propagate things so it's not needed, but that raises an interesting question -- it seems most of the registers in baseBlock never get properly initialised as such. It seems %esp and %eip and the fp-state are initialised, but the rest of them are never set in m_state_static before it gets copied into the baseBlock; thus, they get set to zero (because m_state_static is a static struct and thus zeroed initially). I'm guessing that careful m_state_static setup was necessary pre-FV, when Valgrind got control some time after the program had started. But now it gets control before any meaningful values are put in the GP regs (except %esp), so their contents can be junk? N |