From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bPjfH-0007v0-H1 for qemu-devel@nongnu.org; Wed, 20 Jul 2016 01:03:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bPjfG-0004eD-K2 for qemu-devel@nongnu.org; Wed, 20 Jul 2016 01:03:23 -0400 From: Andrey Smirnov Date: Tue, 19 Jul 2016 22:02:54 -0700 Message-Id: <1468990980-4598-5-git-send-email-andrew.smirnov@gmail.com> In-Reply-To: <1468990980-4598-1-git-send-email-andrew.smirnov@gmail.com> References: <1468990980-4598-1-git-send-email-andrew.smirnov@gmail.com> Subject: [Qemu-devel] [PATCH v3 04/10] address_space_write_continue: Distill common code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Andrey Smirnov , Peter Maydell , David Gibson , qemu-ppc@nongnu.org, qemu-arm@nongnu.org, kvm@vger.kernel.org Move call to memory_region_dispatch_write() outside of swtich statement since the only thing that is different about all of those call is "length" argument and that matches value in "l". Reviewed-by: David Gibson Signed-off-by: Andrey Smirnov --- exec.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/exec.c b/exec.c index 44cd424..e2425c5 100644 --- a/exec.c +++ b/exec.c @@ -2567,32 +2567,23 @@ static MemTxResult address_space_write_continue(AddressSpace *as, hwaddr addr, potential bugs */ switch (l) { case 8: - /* 64 bit write access */ - val = ldq_p(buf); - result |= memory_region_dispatch_write(mr, addr1, val, 8, - attrs); + val = ldq_p(buf); /* 64 bit write access */ break; case 4: - /* 32 bit write access */ - val = ldl_p(buf); - result |= memory_region_dispatch_write(mr, addr1, val, 4, - attrs); + val = ldl_p(buf); /* 32 bit write access */ break; case 2: - /* 16 bit write access */ - val = lduw_p(buf); - result |= memory_region_dispatch_write(mr, addr1, val, 2, - attrs); + val = lduw_p(buf); /* 16 bit write access */ break; case 1: - /* 8 bit write access */ - val = ldub_p(buf); - result |= memory_region_dispatch_write(mr, addr1, val, 1, - attrs); + val = ldub_p(buf); /* 8 bit write access */ break; default: abort(); } + + result |= memory_region_dispatch_write(mr, addr1, val, l, + attrs); } else { /* RAM case */ ptr = qemu_map_ram_ptr(mr->ram_block, addr1); -- 2.5.5