qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Tom Musta <tommusta@gmail.com>
To: qemu-ppc@nongnu.org
Cc: Tom Musta <tommusta@gmail.com>, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 02/13] Add lxsdx
Date: Fri, 04 Oct 2013 08:13:31 -0500	[thread overview]
Message-ID: <524EBEFB.3070909@gmail.com> (raw)
In-Reply-To: <524EBE04.8050207@gmail.com>

This patch adds the Load VSX Scalar Doubleowrd Indexed (lxsdx)
instruction.

The lower 8 bytes of the target register are undefined; this
implementation leaves those bytes unaltered.

Signed-off-by: Tom Musta <tommusta@gmail.com>
---
  target-ppc/translate.c |   16 ++++++++++++++++
  1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 1348360..4f2d647 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -7007,6 +7007,21 @@ static inline TCGv_i64 cpu_vsrl(int n)
      }
  }

+static void gen_lxsdx(DisasContext *ctx)
+{
+    TCGv EA;
+    if (unlikely(!ctx->vsx_enabled)) {
+        gen_exception(ctx, POWERPC_EXCP_VSXU);
+        return;
+    }
+    gen_set_access_type(ctx, ACCESS_INT);
+    EA = tcg_temp_new();
+    gen_addr_reg_index(ctx, EA);
+    gen_qemu_ld64(ctx, cpu_vsrh(xT(ctx->opcode)), EA);
+    /* NOTE: cpu_vsrl is undefined */
+    tcg_temp_free(EA);
+}
+
  static void gen_lxvd2x(DisasContext *ctx)
  {
      TCGv EA;
@@ -9507,6 +9522,7 @@ GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20),
  GEN_VAFORM_PAIRED(vsel, vperm, 21),
  GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23),

+GEN_HANDLER_E(lxsdx, 0x1F, 0x0C, 0x12, 0, PPC_NONE, PPC2_VSX),
  GEN_HANDLER_E(lxvd2x, 0x1F, 0x0C, 0x1A, 0, PPC_NONE, PPC2_VSX),

  GEN_HANDLER_E(stxvd2x, 0x1F, 0xC, 0x1E, 0, PPC_NONE, PPC2_VSX),
-- 
1.7.1

  parent reply	other threads:[~2013-10-04 13:14 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-04 13:09 [Qemu-devel] [PATCH 00/13] Stage 2 VSX Support Tom Musta
2013-10-04 13:11 ` [Qemu-devel] [PATCH 01/13] Abandon GEN_VSX_* macros Tom Musta
2013-10-04 13:13 ` Tom Musta [this message]
2013-10-04 13:15 ` [Qemu-devel] [PATCH 03/13] Add lxvdsx Tom Musta
2013-10-04 13:16 ` [Qemu-devel] [PATCH 04/13] Add lxvw4x Tom Musta
2013-10-09 19:54   ` Richard Henderson
2013-10-04 13:17 ` [Qemu-devel] [PATCH 05/13] Add stxsdx Tom Musta
2013-10-04 13:18 ` [Qemu-devel] [PATCH 06/13] Add stxvw4x Tom Musta
2013-10-04 13:20 ` [Qemu-devel] [PATCH 07/13] Add VSX Scalar Move Instructions Tom Musta
2013-10-04 13:21 ` [Qemu-devel] [PATCH 08/13] Add VSX Vector " Tom Musta
2013-10-04 13:22 ` [Qemu-devel] [PATCH 09/13] Add Power7 VSX Logical Instructions Tom Musta
2013-10-04 13:23 ` [Qemu-devel] [PATCH 10/13] Add xxmrgh/xxmrgl Tom Musta
2013-10-09 20:09   ` Richard Henderson
2013-10-10 12:16     ` Tom Musta
2013-10-04 13:24 ` [Qemu-devel] [PATCH 11/13] Add xxsel Tom Musta
2013-10-09 20:13   ` Richard Henderson
2013-10-10 12:27     ` Tom Musta
2013-10-10 13:45       ` Richard Henderson
2013-10-04 13:26 ` [Qemu-devel] [PATCH 12/13] Add xxspltw Tom Musta
2013-10-09 20:19   ` Richard Henderson
2013-10-04 13:27 ` [Qemu-devel] [PATCH 13/13] Add xxsldwi Tom Musta

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=524EBEFB.3070909@gmail.com \
    --to=tommusta@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.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).