From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58396) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1Eta-0001TV-IL for qemu-devel@nongnu.org; Mon, 31 Oct 2016 11:53:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c1EtZ-0000m6-Je for qemu-devel@nongnu.org; Mon, 31 Oct 2016 11:53:10 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:36498) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1c1EtZ-0000lx-FV for qemu-devel@nongnu.org; Mon, 31 Oct 2016 11:53:09 -0400 Received: by mail-qt0-x243.google.com with SMTP id n34so182671qtb.3 for ; Mon, 31 Oct 2016 08:53:09 -0700 (PDT) Sender: Richard Henderson From: Richard Henderson Date: Mon, 31 Oct 2016 09:52:42 -0600 Message-Id: <1477929173-2006-5-git-send-email-rth@twiddle.net> In-Reply-To: <1477929173-2006-1-git-send-email-rth@twiddle.net> References: <1477929173-2006-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PULL for-2.8 04/15] target-sparc: Use MMU_PHYS_IDX for bypass asis List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org Tested-by: Mark Cave-Ayland Signed-off-by: Richard Henderson --- target-sparc/translate.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/target-sparc/translate.c b/target-sparc/translate.c index ee7bbc4..86432ac 100644 --- a/target-sparc/translate.c +++ b/target-sparc/translate.c @@ -2046,6 +2046,11 @@ static DisasASI get_asi(DisasContext *dc, int insn, TCGMemOp memop) mem_idx = MMU_KERNEL_IDX; type = GET_ASI_DIRECT; break; + case ASI_M_BYPASS: /* MMU passthrough */ + case ASI_LEON_BYPASS: /* LEON MMU passthrough */ + mem_idx = MMU_PHYS_IDX; + type = GET_ASI_DIRECT; + break; } } else { gen_exception(dc, TT_PRIV_INSN); @@ -2066,6 +2071,14 @@ static DisasASI get_asi(DisasContext *dc, int insn, TCGMemOp memop) type = GET_ASI_EXCP; } else { switch (asi) { + case ASI_REAL: /* Bypass */ + case ASI_REAL_IO: /* Bypass, non-cacheable */ + case ASI_REAL_L: /* Bypass LE */ + case ASI_REAL_IO_L: /* Bypass, non-cacheable LE */ + case ASI_TWINX_REAL: /* Real address, twinx */ + case ASI_TWINX_REAL_L: /* Real address, twinx, LE */ + mem_idx = MMU_PHYS_IDX; + break; case ASI_N: /* Nucleus */ case ASI_NL: /* Nucleus LE */ case ASI_TWINX_N: @@ -2123,6 +2136,10 @@ static DisasASI get_asi(DisasContext *dc, int insn, TCGMemOp memop) break; } switch (asi) { + case ASI_REAL: + case ASI_REAL_IO: + case ASI_REAL_L: + case ASI_REAL_IO_L: case ASI_N: case ASI_NL: case ASI_AIUP: @@ -2135,6 +2152,8 @@ static DisasASI get_asi(DisasContext *dc, int insn, TCGMemOp memop) case ASI_PL: type = GET_ASI_DIRECT; break; + case ASI_TWINX_REAL: + case ASI_TWINX_REAL_L: case ASI_TWINX_N: case ASI_TWINX_NL: case ASI_TWINX_AIUP: -- 2.7.4