[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Questions/comments on TCG
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] Questions/comments on TCG |
Date: |
Fri, 7 Mar 2008 22:30:58 +0200 |
On 3/7/08, Stuart Brady <address@hidden> wrote:
> On Fri, Mar 07, 2008 at 08:47:03PM +0200, Blue Swirl wrote:
> > On 3/7/08, Stuart Brady <address@hidden> wrote:
>
> > > tcg_target_reg_alloc_order[] has 32 elements, but only 14 are used.
> > > The rest hold 0, specifying TCG_REG_G0.
> >
> > I see. That could be asking for trouble.
>
>
> Possibly not, as g0 is marked as reserved, but it looks to me like bug,
> regardless of whether it causes any harm, so I've submitted a patch.
>
>
> > > I don't understand -- o7 is required when returning in exit_tb, so if it
> > > is used, it must be saved and restored.
> >
> > Not exit_tb, but call.
>
>
> Right, op_call does need to link, and that clobbers the link register,
> so it must be restored -- but I've a feeling that this isn't happening.
> I expect you could copy o7 to/from i5 before/after the call (or jmpl)...
> although I'm not sure if you'd also need to save the frame pointer.
Another possibility is to add function epilogue with save and add
restore to ret (or use v9 return).
> op_exit_tb also needs the link register, as it needs to know where to
> return to. I see you've fixed op_goto_tb -- I'm not sure if TCG_REG_I5
> now needs removing from tcg_target_reg_alloc_order[], though.
Good point, better remove it.
[Qemu-devel] [PATCH] Remove blank elements in tcg_target_reg_alloc_order[], Stuart Brady, 2008/03/07