qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 3/3] tcg: Optimize qemu_ld/st by generating s


From: Yeongkyoon Lee
Subject: Re: [Qemu-devel] [PATCH v6 3/3] tcg: Optimize qemu_ld/st by generating slow paths at the end of a block
Date: Thu, 18 Oct 2012 11:58:22 +0900
User-agent: Mozilla/5.0 (X11; Linux i686; rv:16.0) Gecko/20121011 Thunderbird/16.0.1

On 2012년 10월 18일 08:44, Richard Henderson wrote:
On 2012-10-16 17:23, Yeongkyoon Lee wrote:
+    /* Code generation of qemu_ld/st's slow path calling MMU helper
+
+       PRE_PROC ...
+       call MMU helper
+       jmp POST_PROC (2b) : short forward jump <- GETRA()
+       jmp next_code (5b) : dummy long backward jump which is never executed
+       POST_PROC ... : do post-processing <- GETRA() + 7
+       jmp next_code : jump to the code corresponding to next IR of qemu_ld/st
+    */
Is this jump over jump really any better than passing next_code
as another function argument?

In 32-bit mode
        push $next_code
In 64-bit mode
        leaq next_code(%rip),%r8


r~


Only one advantage is no fragmentation of MMU helpers, that is, we will still have the same helper prototypes. In my opinion, the performance degradation of using jmp instead of push or something, is negligible because it is executed on slow path.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]