qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: QEMU Developers <qemu-devel@nongnu.org>
Cc: Tom Musta <tommusta@gmail.com>,
	"qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
	Anton Blanchard <anton@samba.org>,
	Anthony Liguori <anthony@codemonkey.ws>
Subject: [Qemu-devel] [PULL 06/32] Add VSR to Global Registers
Date: Fri, 20 Dec 2013 02:00:28 +0100	[thread overview]
Message-ID: <1387501254-60704-7-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1387501254-60704-1-git-send-email-agraf@suse.de>

From: Tom Musta <tommusta@gmail.com>

This patch adds VSX VSRs to the the list of global register indices.
More specifically, it adds the lower halves of the first 32 VSRs to
the list of global register indices.  The upper halves of the first
32 VSRs are already defined via cpu_fpr[].  And the second 32 VSRs
are already defined via the cpu_avrh[] and cpu_avrl[] arrays.

Signed-off-by: Tom Musta <tommusta@gmail.com>
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/translate.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index de2c764..269fdad 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -51,6 +51,7 @@ static char cpu_reg_names[10*3 + 22*4 /* GPR */
 #endif
     + 10*4 + 22*5 /* FPR */
     + 2*(10*6 + 22*7) /* AVRh, AVRl */
+    + 10*5 + 22*6 /* VSR */
     + 8*5 /* CRF */];
 static TCGv cpu_gpr[32];
 #if !defined(TARGET_PPC64)
@@ -58,6 +59,7 @@ static TCGv cpu_gprh[32];
 #endif
 static TCGv_i64 cpu_fpr[32];
 static TCGv_i64 cpu_avrh[32], cpu_avrl[32];
+static TCGv_i64 cpu_vsr[32];
 static TCGv_i32 cpu_crf[8];
 static TCGv cpu_nip;
 static TCGv cpu_msr;
@@ -137,6 +139,11 @@ void ppc_translate_init(void)
 #endif
         p += (i < 10) ? 6 : 7;
         cpu_reg_names_size -= (i < 10) ? 6 : 7;
+        snprintf(p, cpu_reg_names_size, "vsr%d", i);
+        cpu_vsr[i] = tcg_global_mem_new_i64(TCG_AREG0,
+                                             offsetof(CPUPPCState, vsr[i]), p);
+        p += (i < 10) ? 5 : 6;
+        cpu_reg_names_size -= (i < 10) ? 5 : 6;
     }
 
     cpu_nip = tcg_global_mem_new(TCG_AREG0,
@@ -6976,6 +6983,26 @@ GEN_VAFORM_PAIRED(vmsumshm, vmsumshs, 20)
 GEN_VAFORM_PAIRED(vsel, vperm, 21)
 GEN_VAFORM_PAIRED(vmaddfp, vnmsubfp, 23)
 
+/***                           VSX extension                               ***/
+
+static inline TCGv_i64 cpu_vsrh(int n)
+{
+    if (n < 32) {
+        return cpu_fpr[n];
+    } else {
+        return cpu_avrh[n-32];
+    }
+}
+
+static inline TCGv_i64 cpu_vsrl(int n)
+{
+    if (n < 32) {
+        return cpu_vsr[n];
+    } else {
+        return cpu_avrl[n-32];
+    }
+}
+
 /***                           SPE extension                               ***/
 /* Register moves */
 
-- 
1.8.1.4

  parent reply	other threads:[~2013-12-20  1:01 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-20  1:00 [Qemu-devel] [PULL 00/32] ppc patch queue 2013-12-20 Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 01/32] target-ppc: add stubs for KVM breakpoints Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 02/32] powerpc: add PVR mask support Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 03/32] Declare and Enable VSX Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 04/32] Add MSR VSX and Associated Exception Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 05/32] Add VSX Instruction Decoders Alexander Graf
2013-12-20  1:00 ` Alexander Graf [this message]
2013-12-20  1:00 ` [Qemu-devel] [PULL 07/32] Add lxvd2x Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 08/32] Add stxvd2x Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 09/32] Add xxpermdi Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 10/32] Add lxsdx Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 11/32] Add lxvdsx Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 12/32] Add lxvw4x Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 13/32] Add stxsdx Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 14/32] Add stxvw4x Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 15/32] target-ppc: move POWER7+ to a separate family Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 16/32] spapr-rtas: replace return code constants with macros Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 17/32] spapr-rtas: add ibm, (get|set)-system-parameter Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 18/32] PPC: Use default pci bus name for grackle and heathrow Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 19/32] spapr: tie spapr-nvram to -pflash Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 20/32] roms: Flush icache when writing roms to guest memory Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 21/32] Add VSX Scalar Move Instructions Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 22/32] Add VSX Vector " Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 23/32] Add Power7 VSX Logical Instructions Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 24/32] Add xxmrgh/xxmrgl Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 25/32] Add xxsel Alexander Graf
2013-12-20  6:54   ` Stefan Weil
2013-12-20  9:26     ` Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 26/32] Add xxspltw Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 27/32] Add xxsldwi Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 28/32] PPC: Add VSX to hflags Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 29/32] device_tree: s/qemu_devtree/qemu_fdt globally Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 30/32] device_tree: qemu_fdt_setprop: Rename val_array arg Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 31/32] spapr: make sure RMA is in first mode of first memory node Alexander Graf
2013-12-20  1:00 ` [Qemu-devel] [PULL 32/32] spapr: limit numa memory regions by ram size Alexander Graf
2013-12-23 18:08 ` [Qemu-devel] [PULL 00/32] ppc patch queue 2013-12-20 Andreas Färber
2013-12-23 18:10   ` Alexander Graf
2013-12-24 15:19     ` 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=1387501254-60704-7-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=anton@samba.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=tommusta@gmail.com \
    /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).