[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 5/7] tcg: Add mmu helpers that take a return addr
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PULL 5/7] tcg: Add mmu helpers that take a return address argument |
Date: |
Mon, 26 Aug 2013 15:34:15 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
On 08/26/2013 03:26 PM, Paolo Bonzini wrote:
> Something that can be done on top of this patch: what about moving the
> "-1" to helper_ret_*? It is common to pretty much all the targets
> (except ARM has -2), and it would allow some simplifications.
I suppose so, yes.
> li rN, retaddr
> mtlr rN
> b st_trampoline[i]
>
> sequence instead of one of
>
> li rN, retaddr
> mtlr rN
> bl st_trampoline[i]
> b retaddr
This sort of thing is very difficult to evaluate, because of the
cpu's return address prediction stack. I have so far avoided it.
The only cpus that I believe can make good use of tail calls into
the memory helpers are those with predicated stores and calls, i.e.
arm and ia64.
r~
- [Qemu-devel] [PULL 0/7] Improve tcg ldst optimization, Richard Henderson, 2013/08/26
- [Qemu-devel] [PULL 1/7] tcg: Tidy generated code for tcg_outN, Richard Henderson, 2013/08/26
- [Qemu-devel] [PULL 2/7] tcg-i386: Add and use tcg_out64, Richard Henderson, 2013/08/26
- [Qemu-devel] [PULL 3/7] tcg-i386: Try pc-relative lea for constant formation, Richard Henderson, 2013/08/26
- [Qemu-devel] [PULL 4/7] tcg-i386: Tidy qemu_ld/st slow path, Richard Henderson, 2013/08/26
- [Qemu-devel] [PULL 5/7] tcg: Add mmu helpers that take a return address argument, Richard Henderson, 2013/08/26
Re: [Qemu-devel] [PULL 5/7] tcg: Add mmu helpers that take a return address argument, Peter Maydell, 2013/08/26
[Qemu-devel] [PULL 6/7] tcg: Tidy softmmu_template.h, Richard Henderson, 2013/08/26
[Qemu-devel] [PULL 7/7] tcg-i386: Use new return-argument ld/st helpers, Richard Henderson, 2013/08/26