From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=47349 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PcUqB-0006yD-LH for qemu-devel@nongnu.org; Mon, 10 Jan 2011 22:24:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PcUqA-0005Xa-Jo for qemu-devel@nongnu.org; Mon, 10 Jan 2011 22:24:11 -0500 Received: from a.mail.sonic.net ([64.142.16.245]:48599) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PcUqA-0005Wz-7p for qemu-devel@nongnu.org; Mon, 10 Jan 2011 22:24:10 -0500 From: Richard Henderson Date: Mon, 10 Jan 2011 19:23:41 -0800 Message-Id: <1294716228-9299-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PATCH 0/7] Define "deposit" tcg operation, v2 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: agraf@suse.de, aurelien@aurel32.net Changes since v1: * No attempt to pack pos+len into one operand. Updated backends to match this change. * Example in the README is a bit more complex. * Define an official tcg_scratch_alloc routine, used by the i386 target for the case in which we need a scratch register. I had said that triggering this wasn't possible with mainline, but I was wrong. The rlwimi example I posted in the other thread hits this case. Aurelien suggested using a shorter name like "dep", but I think that would be more confusing than not. This opcode is not really used enough to warrent cropping 4 characters, in my opinion. r~ Richard Henderson (7): tcg: Define "deposit" as an optional operation. tcg-ppc: Implement deposit operation. tcg-hppa: Implement deposit operation. tcg-ia64: Implement deposit operation. tcg-i386: Implement deposit operation. target-i386: Use deposit operation. target-ppc: Use deposit operation. target-i386/translate.c | 34 +++----------- target-ppc/translate.c | 10 ++++ tcg/README | 14 ++++++ tcg/hppa/tcg-target.c | 58 +++++++++++++++++++++--- tcg/hppa/tcg-target.h | 1 + tcg/i386/tcg-target.c | 67 ++++++++++++++++++++++++++- tcg/i386/tcg-target.h | 2 + tcg/ia64/tcg-target.c | 115 +++++++++++++++++++++++++++++++++++++++++++++++ tcg/ia64/tcg-target.h | 2 + tcg/ppc/tcg-target.c | 17 +++++++- tcg/ppc/tcg-target.h | 1 + tcg/tcg-op.h | 64 ++++++++++++++++++++++++++ tcg/tcg-opc.h | 6 +++ tcg/tcg.c | 11 +++++ 14 files changed, 364 insertions(+), 38 deletions(-) -- 1.7.2.3