From patchwork Tue May 22 22:26:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emilio Cota X-Patchwork-Id: 918586 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=braap.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=braap.org header.i=@braap.org header.b="r63+BZHI"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="H7V1Q1Bv"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40r9JM51Gqz9s1d for ; Wed, 23 May 2018 08:27:46 +1000 (AEST) Received: from localhost ([::1]:58205 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fLFkt-0003L1-6e for incoming@patchwork.ozlabs.org; Tue, 22 May 2018 18:27:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43609) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fLFkB-0003Im-Td for qemu-devel@nongnu.org; Tue, 22 May 2018 18:27:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fLFk7-000729-03 for qemu-devel@nongnu.org; Tue, 22 May 2018 18:26:59 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:57047) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fLFk6-00071Z-Ql for qemu-devel@nongnu.org; Tue, 22 May 2018 18:26:54 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 5411A21C28; Tue, 22 May 2018 18:26:54 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Tue, 22 May 2018 18:26:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=braap.org; h=cc :date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=mesmtp; bh=Ng5a5Z3GbP4APq vn3oQOSCrpI/xR6HyhIgBnlkQwyO0=; b=r63+BZHIKdaSr5WI31HJjL/mElt7rc m0otDF79guUT24Dp/YJMZTtClAHqFDxl7xYJfhKB1HmEvpXhccNgXEwkrJ0HR4YS 60Ue08Vy3HfjSkXXpeh9TdqjELgtxdzLSm6gO0n97PWqt50Xga+TW5x24wkxS2Fu QcIW6b66xsSvI= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=Ng5a5Z3GbP4APqvn3oQOSCrpI/xR6HyhIgBnlkQwyO0=; b=H7V1Q1Bv l54wBYFkwnJAgM/0/50ghA1Jf+ySP8eAqmqsK3RTE4bT0hNoPLpiBWyW8CNzgGi8 rd1qWgUcks0EkWevjow7cS0v3ol8buyVoLWOHKkKWnIEeUC7mjheZc2aGLQ7TLc/ SHiIEIDC4Dp7t82BC3WQMngwaWvTAi6PVbYlrIvTkuLVJRyf/6y/hlEaBkyZXqFv mQSWzJBK8Of9XkVafSQ1GNE5cn0lobgp4/jCRakTyRN9FGRYnwodNNXI2dVW8IFs QvAUq/3dg4mXioMSCATh5qk6H6y20hmN750mmtR6WX5bfUv+MDl3GJaPzNRotecD bZQFDCznI4KVkw== X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from localhost (flamenco.cs.columbia.edu [128.59.20.216]) by mail.messagingengine.com (Postfix) with ESMTPA id AA568E4115; Tue, 22 May 2018 18:26:53 -0400 (EDT) From: "Emilio G. Cota" To: qemu-devel@nongnu.org Date: Tue, 22 May 2018 18:26:49 -0400 Message-Id: <1527028012-21888-3-git-send-email-cota@braap.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1527028012-21888-1-git-send-email-cota@braap.org> References: <1527028012-21888-1-git-send-email-cota@braap.org> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.111.4.27 Subject: [Qemu-devel] [PATCH 2/5] trace: simplify trace_mem functions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Richard Henderson , Stefan Hajnoczi Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add some defines for the mem_info bits, simplify trace_mem_build_info, and also simplify trace_mem_get_info by making it a wrapper around trace_mem_build_info. This paves the way for increasing size_shift by one bit. Signed-off-by: Emilio G. Cota --- trace/mem-internal.h | 40 ++++++++++++++++++---------------------- trace/mem.h | 2 +- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/trace/mem-internal.h b/trace/mem-internal.h index ddda934..b684e27 100644 --- a/trace/mem-internal.h +++ b/trace/mem-internal.h @@ -10,37 +10,33 @@ #ifndef TRACE__MEM_INTERNAL_H #define TRACE__MEM_INTERNAL_H -static inline uint8_t trace_mem_get_info(TCGMemOp op, bool store) +#define TRACE_MEM_SZ_SHIFT_MASK 0x3 /* size shift mask */ +#define TRACE_MEM_SE (1ULL << 2) /* sign extended (y/n) */ +#define TRACE_MEM_BE (1ULL << 3) /* big endian (y/n) */ +#define TRACE_MEM_ST (1ULL << 4) /* store (y/n) */ + +static inline uint8_t trace_mem_build_info( + int size_shift, bool sign_extend, TCGMemOp endianness, bool store) { - uint8_t res = op; - bool be = (op & MO_BSWAP) == MO_BE; + uint8_t res; - /* remove untraced fields */ - res &= (1ULL << 4) - 1; - /* make endianness absolute */ - res &= ~MO_BSWAP; - if (be) { - res |= 1ULL << 3; + res = size_shift & TRACE_MEM_SZ_SHIFT_MASK; + if (sign_extend) { + res |= TRACE_MEM_SE; + } + if (endianness == MO_BE) { + res |= TRACE_MEM_BE; } - /* add fields */ if (store) { - res |= 1ULL << 4; + res |= TRACE_MEM_ST; } - return res; } -static inline uint8_t trace_mem_build_info( - TCGMemOp size, bool sign_extend, TCGMemOp endianness, bool store) +static inline uint8_t trace_mem_get_info(TCGMemOp op, bool store) { - uint8_t res = 0; - res |= size; - res |= (sign_extend << 2); - if (endianness == MO_BE) { - res |= (1ULL << 3); - } - res |= (store << 4); - return res; + return trace_mem_build_info(op & MO_SIZE, !!(op & MO_SIGN), + op & MO_BSWAP, store); } #endif /* TRACE__MEM_INTERNAL_H */ diff --git a/trace/mem.h b/trace/mem.h index 9c88bcb..2b58196 100644 --- a/trace/mem.h +++ b/trace/mem.h @@ -25,7 +25,7 @@ static uint8_t trace_mem_get_info(TCGMemOp op, bool store); * * Return a value for the 'info' argument in guest memory access traces. */ -static uint8_t trace_mem_build_info(TCGMemOp size, bool sign_extend, +static uint8_t trace_mem_build_info(int size_shift, bool sign_extend, TCGMemOp endianness, bool store);