[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs |
Date: |
Tue, 9 Oct 2012 19:09:23 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Oct 09, 2012 at 06:55:58PM +0200, Paolo Bonzini wrote:
> Il 09/10/2012 18:19, Aurelien Jarno ha scritto:
> >>> > >
> >> >
> >> > Instead of calling the MMU helper with an additional argument (7), and
> >> > then jump back (8) to the next code (4), what about pushing the address
> >> > of the next code (4) on the stack and use a jmp instead of the call. In
> >> > that case you don't need the extra argument to the helpers.
> >> >
> > Maybe it wasn't very clear. This is based on the fact that call is
> > basically push %rip + jmp. Therefore we can fake the return address by
> > putting the value we want, here the address of the next code. This mean
> > that we don't need to pass the extra argument to the helper for the
> > return address, as GET_PC() would work correctly (it basically reads the
> > return address on the stack).
> >
> > For other architectures, it might not be a push, but rather a move to
> > link register, basically put the return address where the calling
> > convention asks for.
> >
> > OTOH I just realized it only works if the end of the slow path (moving
> > the value from the return address to the correct register). It might be
> > something doable.
>
> Branch predictors will not oldschool tricks like this one. :)
>
Given it is only used in the slow path (ie the exception more than the
rule), branch prediction isn't that important there.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
- [Qemu-devel] [PATCH v5 2/3] tcg: Add declarations and templates of extended MMU helpers, (continued)
- [Qemu-devel] [PATCH v5 2/3] tcg: Add declarations and templates of extended MMU helpers, Yeongkyoon Lee, 2012/10/09
- [Qemu-devel] [PATCH v5 1/3] configure: Add CONFIG_QEMU_LDST_OPTIMIZATION for TCG qemu_ld/st optimization, Yeongkyoon Lee, 2012/10/09
- [Qemu-devel] [PATCH v5 3/3] tcg: Optimize qemu_ld/st by generating slow paths at the end of a block, Yeongkyoon Lee, 2012/10/09
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Aurelien Jarno, 2012/10/09
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Aurelien Jarno, 2012/10/09
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Paolo Bonzini, 2012/10/09
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs,
Aurelien Jarno <=
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Yeongkyoon Lee, 2012/10/10
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Aurelien Jarno, 2012/10/10
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Yeongkyoon Lee, 2012/10/10
- Re: [Qemu-devel] [PATCH v5 0/3] tcg: enhance code generation quality for qemu_ld/st IRs, Yeongkyoon Lee, 2012/10/10