qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH-for-9.1 06/12] tcg/sparc64: Check for USER_ONLY definition in


From: Richard Henderson
Subject: Re: [PATCH-for-9.1 06/12] tcg/sparc64: Check for USER_ONLY definition instead of SOFTMMU one
Date: Fri, 15 Mar 2024 11:17:44 -1000
User-agent: Mozilla Thunderbird

On 3/13/24 11:33, Philippe Mathieu-Daudé wrote:
Since we *might* have user emulation with softmmu,
replace the system emulation check by !user emulation one.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  tcg/sparc64/tcg-target.c.inc | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

This is all really softmmu.

If we ever grow user-only softmmu support, these will have to be runtime tests. But until then the ifdefs are really pointing out softmmu uses.


r~


diff --git a/tcg/sparc64/tcg-target.c.inc b/tcg/sparc64/tcg-target.c.inc
index 176c98740b..56915a913b 100644
--- a/tcg/sparc64/tcg-target.c.inc
+++ b/tcg/sparc64/tcg-target.c.inc
@@ -78,7 +78,7 @@ static const char * const 
tcg_target_reg_names[TCG_TARGET_NB_REGS] = {
  #define TCG_REG_T2  TCG_REG_G2
  #define TCG_REG_T3  TCG_REG_O7
-#ifndef CONFIG_SOFTMMU
+#ifdef CONFIG_USER_ONLY
  # define TCG_GUEST_BASE_REG TCG_REG_I5
  #endif
@@ -961,7 +961,7 @@ static void tcg_target_qemu_prologue(TCGContext *s)
      tcg_out32(s, SAVE | INSN_RD(TCG_REG_O6) | INSN_RS1(TCG_REG_O6) |
                INSN_IMM13(-frame_size));
-#ifndef CONFIG_SOFTMMU
+#ifdef CONFIG_USER_ONLY
      if (guest_base != 0) {
          tcg_out_movi_int(s, TCG_TYPE_PTR, TCG_GUEST_BASE_REG,
                           guest_base, true, TCG_REG_T1);
@@ -1075,7 +1075,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, 
HostAddress *h,
      h->aa.align = MAX(h->aa.align, s_bits);
      a_mask = (1u << h->aa.align) - 1;
-#ifdef CONFIG_SOFTMMU
+#ifndef CONFIG_USER_ONLY
      int mem_index = get_mmuidx(oi);
      int fast_off = tlb_mask_table_ofs(s, mem_index);
      int mask_off = fast_off + offsetof(CPUTLBDescFast, mask);
@@ -1147,7 +1147,7 @@ static TCGLabelQemuLdst *prepare_host_addr(TCGContext *s, 
HostAddress *h,
          tcg_out_bpcc0(s, COND_NE, BPCC_PN | BPCC_ICC, 0);
      }
      h->base = guest_base ? TCG_GUEST_BASE_REG : TCG_REG_G0;
-#endif
+#endif /* CONFIG_USER_ONLY */
/* If the guest address must be zero-extended, do in the delay slot. */
      if (addr_type == TCG_TYPE_I32) {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]