From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33394) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5AFj-00073i-NQ for qemu-devel@nongnu.org; Sun, 18 Sep 2011 01:49:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R5AFi-0002BP-L6 for qemu-devel@nongnu.org; Sun, 18 Sep 2011 01:49:19 -0400 Received: from v220110690675601.yourvserver.net ([78.47.199.172]:40563) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5AFi-0002BF-FF for qemu-devel@nongnu.org; Sun, 18 Sep 2011 01:49:18 -0400 Message-ID: <4E75865B.5040106@mail.berlios.de> Date: Sun, 18 Sep 2011 07:49:15 +0200 From: Stefan Weil MIME-Version: 1.0 References: <4E74FC29.1050003@mail.berlios.de> <1316289634-18786-5-git-send-email-weil@mail.berlios.de> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 5/8] tcg: Add interpreter for bytecode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andi Kleen Cc: QEMU Developers Am 18.09.2011 06:03, schrieb Andi Kleen: > Stefan Weil writes: >> + >> + switch (opc) { >> + case INDEX_op_end: >> + case INDEX_op_nop: >> + break; > > You could probably get some more speed out of this by using a threaded > interpreter with gcc's computed goto extension. That's typically > significantly faster than a plain switch in a loop. > > static void *ops[] = { > &&op1, > &&op2, > ... > }; > > #define NEXT() goto *ops[*tb_ptr++]; > > op1: > ... > NEXT(); > > -Andi Is there really any difference in the generated code? gcc already uses a jump table internally to handle the switch cases. - Stefan