From nobody Sat Apr 20 00:39:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1502460825602807.7146758163345; Fri, 11 Aug 2017 07:13:45 -0700 (PDT) Received: from localhost ([::1]:43485 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dgAh6-00082O-Bp for importer@patchew.org; Fri, 11 Aug 2017 10:13:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57359) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dgAaF-0001cJ-Ev for qemu-devel@nongnu.org; Fri, 11 Aug 2017 10:06:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dgAaB-0003Kh-Bn for qemu-devel@nongnu.org; Fri, 11 Aug 2017 10:06:39 -0400 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:35595) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dgAaB-0003KS-77 for qemu-devel@nongnu.org; Fri, 11 Aug 2017 10:06:35 -0400 Received: by mail-qk0-x243.google.com with SMTP id a77so3569308qkb.2 for ; Fri, 11 Aug 2017 07:06:35 -0700 (PDT) Received: from yoga.offpageads.com ([138.117.48.223]) by smtp.gmail.com with ESMTPSA id v140sm549030qka.74.2017.08.11.07.06.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Aug 2017 07:06:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jKukx0nVsIqz3Fj674MWIBTJIHlev087vra3meDLwJk=; b=i+rJAlz9t3dQRSgds72z4ndZVFKG1Z0lrAKFydSG+xDwgX5xCInbK3Ko5FjFG+GB6n p/QnUCoMZ0LvCi8TQcHpIv9AH9WxaC7wsWaGJD+mB9TPp9G0SjGS3eoi5I8o+0YYhSCZ eI6R5HA1TKHt2PHk3dn5tNh1WRSJIBys9dPCrHPbJEWKQzrbaYF/7x5SVoEj06uCZKNu kUb+6VW8S9QYlilGbE1xKBYYAqNSJAdmXDyBgIQBIJHoY3s6VwY7MNcdTk3+rNvlIll7 8L7jzbvcx8PY7cscuQ1PVpbFVCYY5n9QIWq3ruDYy8o8RHZqvCj0mEeTH/PfB/ZgdPn6 o1RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=jKukx0nVsIqz3Fj674MWIBTJIHlev087vra3meDLwJk=; b=c28od0XBKLqUoKa6Q14HYz8eDgK2piddXeBpBxDXUN1d4S2cx19E6Cu1XirqpZuWMH EStQ8OCdI3UU4UY8+eZi30Xk3ApDTtuWmwlqPSwH7hZspEIGcewUNH9h904dEPdNoj8M RIwJoGtxBNxbMLze1KBCa63XoDd75R5N9AvJ/K/fH9XuNdRfjeeQpSslx5KZWUt4iuxi pL1+8G0fWY+NCrr3D2kFasg3EeoFJuYu7Ba1mBakbGjmOHPyHszVTbUkpWBAKjcw/lND OkUuHGJuBUxxRn9vMZYr35qqsAxUJFF8bOxMJ+P9IyccodijQfbvf0N/hoTCuCPlU666 urxQ== X-Gm-Message-State: AHYfb5iDpO77Js/WA77qxHGSO28YxRckdkdXcdNmkJf/tkOBVY6O06f6 Oj3ZeF1q+9M3JA== X-Received: by 10.55.16.94 with SMTP id a91mr18692287qkh.86.1502460394549; Fri, 11 Aug 2017 07:06:34 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Peter Maydell , KONRAD Frederic , Peter Crosthwaite , Paolo Bonzini Date: Fri, 11 Aug 2017 11:06:28 -0300 Message-Id: <20170811140628.31935-1-f4bug@amsat.org> X-Mailer: git-send-email 2.13.3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [RFC PATCH] memory: fix access_with_adjusted_size() on big-endian 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: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 remove unnecessary memory_region_big_endian() Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- This is part of a branch with many cross-endianness tests for 2.11 Frederic does it helps your issues on armeb? memory.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/memory.c b/memory.c index c0adc35410..600f5d5b1a 100644 --- a/memory.c +++ b/memory.c @@ -338,15 +338,6 @@ static void flatview_simplify(FlatView *view) } } =20 -static bool memory_region_big_endian(MemoryRegion *mr) -{ -#ifdef TARGET_WORDS_BIGENDIAN - return mr->ops->endianness !=3D DEVICE_LITTLE_ENDIAN; -#else - return mr->ops->endianness =3D=3D DEVICE_BIG_ENDIAN; -#endif -} - static bool memory_region_wrong_endianness(MemoryRegion *mr) { #ifdef TARGET_WORDS_BIGENDIAN @@ -572,7 +563,8 @@ static MemTxResult access_with_adjusted_size(hwaddr add= r, { uint64_t access_mask; unsigned access_size; - unsigned i; + hwaddr access_addr; + unsigned offset; MemTxResult r =3D MEMTX_OK; =20 if (!access_size_min) { @@ -585,17 +577,17 @@ static MemTxResult access_with_adjusted_size(hwaddr a= ddr, /* FIXME: support unaligned access? */ access_size =3D MAX(MIN(size, access_size_max), access_size_min); access_mask =3D -1ULL >> (64 - access_size * 8); - if (memory_region_big_endian(mr)) { - for (i =3D 0; i < size; i +=3D access_size) { - r |=3D access(mr, addr + i, value, access_size, - (size - access_size - i) * 8, access_mask, attrs); + access_addr =3D addr & ~(access_size - 1); + if (access_size < size) { + for (offset =3D 0; offset < size; offset +=3D access_size) { + r |=3D access(mr, access_addr + offset, value, access_size, + offset * 8, access_mask, attrs); } } else { - for (i =3D 0; i < size; i +=3D access_size) { - r |=3D access(mr, addr + i, value, access_size, i * 8, - access_mask, attrs); - } + r =3D access(mr, access_addr, value, access_size, + 0, access_mask, attrs); } + return r; } =20 --=20 2.13.3