qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
	David Hildenbrand <david@redhat.com>
Subject: [PULL 13/33] target/s390x: Tidy access_prepare_nf
Date: Mon, 27 Feb 2023 12:36:01 +0100	[thread overview]
Message-ID: <20230227113621.58468-14-thuth@redhat.com> (raw)
In-Reply-To: <20230227113621.58468-1-thuth@redhat.com>

From: Richard Henderson <richard.henderson@linaro.org>

Assign to access struct immediately, rather than waiting
until the end of the function.  This means we can pass
address of haddr struct members instead of allocating
extra space on the local stack.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20230109201856.3916639-5-richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 target/s390x/tcg/mem_helper.c | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/target/s390x/tcg/mem_helper.c b/target/s390x/tcg/mem_helper.c
index 4d157ba9cf..dc9b5ff088 100644
--- a/target/s390x/tcg/mem_helper.c
+++ b/target/s390x/tcg/mem_helper.c
@@ -176,39 +176,35 @@ static int access_prepare_nf(S390Access *access, CPUS390XState *env,
                              MMUAccessType access_type,
                              int mmu_idx, uintptr_t ra)
 {
-    void *haddr1, *haddr2 = NULL;
     int size1, size2, exc;
-    vaddr vaddr2 = 0;
 
     assert(size > 0 && size <= 4096);
 
     size1 = MIN(size, -(vaddr1 | TARGET_PAGE_MASK)),
     size2 = size - size1;
 
+    memset(access, 0, sizeof(*access));
+    access->vaddr1 = vaddr1;
+    access->size1 = size1;
+    access->size2 = size2;
+    access->mmu_idx = mmu_idx;
+
     exc = s390_probe_access(env, vaddr1, size1, access_type, mmu_idx, nonfault,
-                            &haddr1, ra);
-    if (exc) {
+                            &access->haddr1, ra);
+    if (unlikely(exc)) {
         return exc;
     }
     if (unlikely(size2)) {
         /* The access crosses page boundaries. */
-        vaddr2 = wrap_address(env, vaddr1 + size1);
+        vaddr vaddr2 = wrap_address(env, vaddr1 + size1);
+
+        access->vaddr2 = vaddr2;
         exc = s390_probe_access(env, vaddr2, size2, access_type, mmu_idx,
-                                nonfault, &haddr2, ra);
-        if (exc) {
+                                nonfault, &access->haddr2, ra);
+        if (unlikely(exc)) {
             return exc;
         }
     }
-
-    *access = (S390Access) {
-        .vaddr1 = vaddr1,
-        .vaddr2 = vaddr2,
-        .haddr1 = haddr1,
-        .haddr2 = haddr2,
-        .size1 = size1,
-        .size2 = size2,
-        .mmu_idx = mmu_idx
-    };
     return 0;
 }
 
-- 
2.31.1



  parent reply	other threads:[~2023-02-27 11:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-27 11:35 [PULL 00/33] s390x and testing related patches Thomas Huth
2023-02-27 11:35 ` [PULL 01/33] tests/qtest/rtl8139-test: Make the test less verbose by default Thomas Huth
2023-02-27 11:35 ` [PULL 02/33] Do not include hw/hw.h if it is not necessary Thomas Huth
2023-02-27 11:35 ` [PULL 03/33] hw/vfio/ccw: Simplify using DEVICE() macro Thomas Huth
2023-02-27 11:35 ` [PULL 04/33] hw/vfio/ccw: Use intermediate S390CCWDevice variable Thomas Huth
2023-02-27 11:35 ` [PULL 05/33] hw/vfio/ccw: Replace DO_UPCAST(S390CCWDevice) by S390_CCW_DEVICE() Thomas Huth
2023-02-27 11:35 ` [PULL 06/33] hw/vfio/ccw: Remove pointless S390CCWDevice variable Thomas Huth
2023-02-27 11:35 ` [PULL 07/33] hw/vfio/ccw: Replace DO_UPCAST(VFIOCCWDevice) by VFIO_CCW() Thomas Huth
2023-02-27 11:35 ` [PULL 08/33] target/s390x/arch_dump: Fix memory corruption in s390x_write_elf64_notes() Thomas Huth
2023-02-27 11:35 ` [PULL 09/33] target/s390x/arch_dump: Simplify memory allocation " Thomas Huth
2023-02-27 11:35 ` [PULL 10/33] target/s390x: Fix s390_probe_access for user-only Thomas Huth
2023-02-27 11:35 ` [PULL 11/33] target/s390x: Pass S390Access pointer into access_prepare Thomas Huth
2023-02-27 11:36 ` [PULL 12/33] target/s390x: Use void* for haddr in S390Access Thomas Huth
2023-02-27 11:36 ` Thomas Huth [this message]
2023-02-27 11:36 ` [PULL 14/33] target/s390x: Remove TLB_NOTDIRTY workarounds Thomas Huth
2023-02-27 11:36 ` [PULL 15/33] target/s390x: Inline do_access_{get,set}_byte Thomas Huth
2023-02-27 11:36 ` [PULL 16/33] target/s390x: Hoist some computation in access_memmove Thomas Huth
2023-02-27 11:36 ` [PULL 17/33] s390x/pv: Add support for asynchronous teardown for reboot Thomas Huth
2023-02-27 11:36 ` [PULL 18/33] target/s390x: Use tcg_constant_* in local contexts Thomas Huth
2023-02-27 11:36 ` [PULL 19/33] target/s390x: Use tcg_constant_* for DisasCompare Thomas Huth
2023-02-27 11:36 ` [PULL 20/33] target/s390x: Use tcg_constant_i32 for fpinst_extract_m34 Thomas Huth
2023-02-27 11:36 ` [PULL 21/33] target/s390x: Use tcg_constant_* in translate_vx.c.inc Thomas Huth
2023-02-27 11:36 ` [PULL 22/33] tests/tcg/s390x: Add bal.S Thomas Huth
2023-02-27 11:36 ` [PULL 23/33] tests/tcg/s390x: Add sam.S Thomas Huth
2023-02-27 11:36 ` [PULL 24/33] configure: Add 'mkdir build' check Thomas Huth
2023-02-27 11:36 ` [PULL 25/33] qemu-keymap: Silence memory leak warning from Clang's sanitizer Thomas Huth
2023-02-27 11:36 ` [PULL 26/33] meson: fix dependency on qemu-keymap Thomas Huth
2023-02-27 11:36 ` [PULL 27/33] Updated the FSF address to <https://www.gnu.org/licenses/> Thomas Huth
2023-02-27 11:36 ` [PULL 28/33] gitlab-ci.d/buildtest: Remove aarch64-softmmu from the build-system-ubuntu job Thomas Huth
2023-02-27 11:36 ` [PULL 29/33] gitlab-ci.d/buildtest: Disintegrate the build-coroutine-sigaltstack job Thomas Huth
2023-02-27 11:36 ` [PULL 30/33] gitlab-ci.d/buildtest-template: Simplify the configure step Thomas Huth
2023-02-27 11:36 ` [PULL 31/33] gitlab-ci.d: Build with --enable-fdt=system by default Thomas Huth
2023-02-27 11:36 ` [PULL 32/33] gitlab-ci.d/base: Mark jobs as interruptible " Thomas Huth
2023-02-27 11:36 ` [PULL 33/33] Deprecate the "-no-acpi" command line switch Thomas Huth
2023-02-27 14:45 ` [PULL 00/33] s390x and testing related patches Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230227113621.58468-14-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=david@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).