> On 02/26/2010 12:30 PM, Paul Brook wrote: > >> Since b567b38 (target-arm: remove T0 and T1, 2009-10-16) the only global > >> register that is actually used is AREG0, so the complexity of > >> hostregs_helper.h is unwarranted. > >> > >> Let's just say that env should be the only global register. AREG1 and > >> AREG2 in principle could still be used to work around bad register > >> allocation in GCC, so I'm leaving them in dyngen-exec.h. > > > > I think AREG[12] should be removed too. If we aren't saving them then > > they can't be safely used. > > You could still use them for local register variables, but I can prepare > a patch to remove them (unless you do that yourself).
I'm not sure what you mean by a "local register variable". If you're entirely within TCG then the AREG defines aren't used anyway. If you're communicating between TCG and C helpers then you need the cpu-exec.c save/restore. I suspect you're thinking of TCG_AREG[12] in tcg-target.h. We should probably remove those and allow the register allocator to reclaim those registers. Paul