On Sun, May 15, 2011 at 3:14 PM, Laurent Desnogues <laurent.desnog...@gmail.com> wrote: > On Sun, May 15, 2011 at 1:33 PM, Blue Swirl <blauwir...@gmail.com> wrote: > [...] >>> x86_64 uses r14 as TCG_AREG0. Despite the instructions being quite >>> simple (only 2 movi_i32), the resulting code makes 2 access to env to >>> save the two registers. Having to reload the env pointer each time to a >>> register would clearly increase the size of this TB. >> >> I don't think TCG would be that simple, instead the pointer would be >> loaded only once in this case. > > Assuming TCG was able to allocate a register for that, > it would be live at most for one TB, so you'd have to > load it at least once per TB, and with block chaining > that wouldn't be efficient as you'd keep on reloading it.
Yes, but if there are better uses, the register can be flushed. Now this is not possible since the register is always unavailable.