From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:55192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFGJs-0007xV-4J for qemu-devel@nongnu.org; Sat, 15 Oct 2011 22:19:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RFGJq-0001ng-SN for qemu-devel@nongnu.org; Sat, 15 Oct 2011 22:19:20 -0400 Received: from mta-1.ms.rz.rwth-aachen.de ([134.130.7.72]:53030) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RFGJq-0001na-KH for qemu-devel@nongnu.org; Sat, 15 Oct 2011 22:19:18 -0400 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=ISO-8859-1 Received: from ironport-out-1.rz.rwth-aachen.de ([134.130.5.40]) by mta-1.ms.rz.RWTH-Aachen.de (Sun Java(tm) System Messaging Server 6.3-7.04 (built Sep 26 2008)) with ESMTP id <0LT400FSFZS3OM40@mta-1.ms.rz.RWTH-Aachen.de> for qemu-devel@nongnu.org; Sun, 16 Oct 2011 04:19:15 +0200 (CEST) Received: from [172.23.23.190] ([unknown] [87.79.236.180]) by relay-auth-1.ms.rz.rwth-aachen.de (Sun Java(tm) System Messaging Server 7.0-3.01 64bit (built Dec 9 2008)) with ESMTPA id <0LT400HUTZS3JC00@relay-auth-1.ms.rz.rwth-aachen.de> for qemu-devel@nongnu.org; Sun, 16 Oct 2011 04:19:15 +0200 (CEST) Message-id: <4E9A3F22.6030105@rwth-aachen.de> Date: Sun, 16 Oct 2011 04:19:14 +0200 From: "felix.matenaar@rwth-aachen" Subject: [Qemu-devel] Cooperative BBL execution due to binary translation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hi *, I have the following question regarding qemu binary translation of target-i386 (and maybe other targets): As far as I understood the code, when a basic block is executed, there is no event which can interrupt the execution until the bbl reaches its end and the control flow is then back at qemu. Is this right? Stumbled over this when asking me why basic blocks are sometimes divided even if there is no branch in it. If so, is the reason for this that some application like that could cause timing problems: c = get_executable_memory(1Gb) set(c, OPCODE_NOP, sizeof c) jmp_into c Regards, Felix