From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48730) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bvcHN-0003Cy-Hd for qemu-devel@nongnu.org; Sat, 15 Oct 2016 23:38:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bvcHM-0005cV-MB for qemu-devel@nongnu.org; Sat, 15 Oct 2016 23:38:29 -0400 Received: from mail-qk0-x232.google.com ([2607:f8b0:400d:c09::232]:36188) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1bvcHM-0005bs-ID for qemu-devel@nongnu.org; Sat, 15 Oct 2016 23:38:28 -0400 Received: by mail-qk0-x232.google.com with SMTP id o68so237485194qkf.3 for ; Sat, 15 Oct 2016 20:38:28 -0700 (PDT) Received: from bigtime.com ([2607:fb90:848f:44ba:5e51:4fff:fe40:9c64]) by smtp.gmail.com with ESMTPSA id v186sm11672982qkb.23.2016.10.15.20.38.25 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Oct 2016 20:38:26 -0700 (PDT) Sender: Richard Henderson From: Richard Henderson Date: Sat, 15 Oct 2016 20:37:35 -0700 Message-Id: <1476589070-5792-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PATCH 00/15] tcg field extract primitives List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org I was fooling around with a new target last weekend, and got myself all turned around with its field extract instruction. How much more handy would it be, I told myself, if we had such a thing generically? In addition, many hosts have this natively. So it seems a shame to not take advantage of it when we can. Lightly tested on x86_64, ppc64le, arm32, and s390x hosts. r~ Richard Henderson (15): tcg: Add field extraction primitives tcg: Minor adjustments to deposit expanders tcg/aarch64: Implement field extraction opcodes tcg/arm: Move isa detection to tcg-target.h tcg/arm: Implement field extraction opcodes tcg/i386: Implement field extraction opcodes tcg/mips: Implement field extraction opcodes tcg/ppc: Implement field extraction opcodes tcg/s390: Implement field extraction opcodes target-alpha: Use deposit and extract ops target-arm: Use tcg_gen_*extract target-i386: Use tcg_gen_extract_tl target-mips: Use tcg_gen_extract_* target-ppc: Use tcg_gen_extract_* target-s390: Use tcg_gen_extract_i64 target-alpha/translate.c | 67 +++++---- target-arm/translate-a64.c | 48 ++++--- target-arm/translate.c | 37 ++--- target-i386/translate.c | 45 +++--- target-mips/translate.c | 12 +- target-ppc/translate.c | 9 +- target-s390x/translate.c | 24 ++-- tcg/aarch64/tcg-target.h | 4 + tcg/aarch64/tcg-target.inc.c | 14 ++ tcg/arm/tcg-target.h | 38 +++++- tcg/arm/tcg-target.inc.c | 63 ++++----- tcg/i386/tcg-target.h | 7 + tcg/i386/tcg-target.inc.c | 30 ++++ tcg/ia64/tcg-target.h | 4 + tcg/mips/tcg-target.h | 2 + tcg/mips/tcg-target.inc.c | 4 + tcg/optimize.c | 29 ++++ tcg/ppc/tcg-target.h | 4 + tcg/ppc/tcg-target.inc.c | 10 ++ tcg/s390/tcg-target.h | 12 +- tcg/s390/tcg-target.inc.c | 13 +- tcg/sparc/tcg-target.h | 4 + tcg/tcg-op.c | 319 ++++++++++++++++++++++++++++++++++++++++++- tcg/tcg-op.h | 12 ++ tcg/tcg-opc.h | 4 + tcg/tcg.h | 8 ++ tcg/tci/tcg-target.h | 4 + 27 files changed, 655 insertions(+), 172 deletions(-) -- 2.7.4