qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Tom Musta <tommusta@gmail.com>,
	blauwirbel@gmail.com, qemu-ppc@nongnu.org, aliguori@amazon.com,
	aurelien@aurel32.net
Subject: [Qemu-devel] [PULL 110/130] target-ppc: Altivec 2.07: Quadword Addition and Subtracation
Date: Fri,  7 Mar 2014 00:33:57 +0100	[thread overview]
Message-ID: <1394148857-19607-111-git-send-email-agraf@suse.de> (raw)
In-Reply-To: <1394148857-19607-1-git-send-email-agraf@suse.de>

From: Tom Musta <tommusta@gmail.com>

This patch adds the Vector Quadword Addition and Subtraction instructions
introduced in Power ISA Version 2.07:

  - Vector Add Unsigned Quadword Modulo (vadduqm)
  - Vector Add & Write Carry Unsigned Quadword (vaddcuq)
  - Vector Add Extended Unsigned Quadword (vaddeuqm)
  - Vector Add Extended & Write Carry Unsigned Quadword (vaddecuq)
  - Vector Subtract Unsigned Quadword Modulo (vsubuqm)
  - Vector Subtract & Write Carry Unsigned Quadword (vsubcuq)
  - Vector Subtract Extended Unsigned Quadword (vsubeuqm)
  - Vector Subtract Extended & Write Carry Unsigned Quadword (vsubecuq)

Signed-off-by: Tom Musta <tommusta@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
 target-ppc/helper.h     |   8 +++
 target-ppc/int_helper.c | 185 ++++++++++++++++++++++++++++++++++++++++++++++++
 target-ppc/translate.c  |  18 +++++
 3 files changed, 211 insertions(+)

diff --git a/target-ppc/helper.h b/target-ppc/helper.h
index 3201268..1483930 100644
--- a/target-ppc/helper.h
+++ b/target-ppc/helper.h
@@ -211,6 +211,14 @@ DEF_HELPER_4(vadduws, void, env, avr, avr, avr)
 DEF_HELPER_4(vsububs, void, env, avr, avr, avr)
 DEF_HELPER_4(vsubuhs, void, env, avr, avr, avr)
 DEF_HELPER_4(vsubuws, void, env, avr, avr, avr)
+DEF_HELPER_3(vadduqm, void, avr, avr, avr)
+DEF_HELPER_4(vaddecuq, void, avr, avr, avr, avr)
+DEF_HELPER_4(vaddeuqm, void, avr, avr, avr, avr)
+DEF_HELPER_3(vaddcuq, void, avr, avr, avr)
+DEF_HELPER_3(vsubuqm, void, avr, avr, avr)
+DEF_HELPER_4(vsubecuq, void, avr, avr, avr, avr)
+DEF_HELPER_4(vsubeuqm, void, avr, avr, avr, avr)
+DEF_HELPER_3(vsubcuq, void, avr, avr, avr)
 DEF_HELPER_3(vrlb, void, avr, avr, avr)
 DEF_HELPER_3(vrlh, void, avr, avr, avr)
 DEF_HELPER_3(vrlw, void, avr, avr, avr)
diff --git a/target-ppc/int_helper.c b/target-ppc/int_helper.c
index b4a7298..72fb13c 100644
--- a/target-ppc/int_helper.c
+++ b/target-ppc/int_helper.c
@@ -1568,6 +1568,191 @@ VGENERIC_DO(popcntd, u64)
 
 #undef VGENERIC_DO
 
+#if defined(HOST_WORDS_BIGENDIAN)
+#define QW_ONE { .u64 = { 0, 1 } }
+#else
+#define QW_ONE { .u64 = { 1, 0 } }
+#endif
+
+#ifndef CONFIG_INT128
+
+static inline void avr_qw_not(ppc_avr_t *t, ppc_avr_t a)
+{
+    t->u64[0] = ~a.u64[0];
+    t->u64[1] = ~a.u64[1];
+}
+
+static int avr_qw_cmpu(ppc_avr_t a, ppc_avr_t b)
+{
+    if (a.u64[HI_IDX] < b.u64[HI_IDX]) {
+        return -1;
+    } else if (a.u64[HI_IDX] > b.u64[HI_IDX]) {
+        return 1;
+    } else if (a.u64[LO_IDX] < b.u64[LO_IDX]) {
+        return -1;
+    } else if (a.u64[LO_IDX] > b.u64[LO_IDX]) {
+        return 1;
+    } else {
+        return 0;
+    }
+}
+
+static void avr_qw_add(ppc_avr_t *t, ppc_avr_t a, ppc_avr_t b)
+{
+    t->u64[LO_IDX] = a.u64[LO_IDX] + b.u64[LO_IDX];
+    t->u64[HI_IDX] = a.u64[HI_IDX] + b.u64[HI_IDX] +
+                     (~a.u64[LO_IDX] < b.u64[LO_IDX]);
+}
+
+static int avr_qw_addc(ppc_avr_t *t, ppc_avr_t a, ppc_avr_t b)
+{
+    ppc_avr_t not_a;
+    t->u64[LO_IDX] = a.u64[LO_IDX] + b.u64[LO_IDX];
+    t->u64[HI_IDX] = a.u64[HI_IDX] + b.u64[HI_IDX] +
+                     (~a.u64[LO_IDX] < b.u64[LO_IDX]);
+    avr_qw_not(&not_a, a);
+    return avr_qw_cmpu(not_a, b) < 0;
+}
+
+#endif
+
+void helper_vadduqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+#ifdef CONFIG_INT128
+    r->u128 = a->u128 + b->u128;
+#else
+    avr_qw_add(r, *a, *b);
+#endif
+}
+
+void helper_vaddeuqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+{
+#ifdef CONFIG_INT128
+    r->u128 = a->u128 + b->u128 + (c->u128 & 1);
+#else
+
+    if (c->u64[LO_IDX] & 1) {
+        ppc_avr_t tmp;
+
+        tmp.u64[HI_IDX] = 0;
+        tmp.u64[LO_IDX] = c->u64[LO_IDX] & 1;
+        avr_qw_add(&tmp, *a, tmp);
+        avr_qw_add(r, tmp, *b);
+    } else {
+        avr_qw_add(r, *a, *b);
+    }
+#endif
+}
+
+void helper_vaddcuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+#ifdef CONFIG_INT128
+    r->u128 = (~a->u128 < b->u128);
+#else
+    ppc_avr_t not_a;
+
+    avr_qw_not(&not_a, *a);
+
+    r->u64[HI_IDX] = 0;
+    r->u64[LO_IDX] = (avr_qw_cmpu(not_a, *b) < 0);
+#endif
+}
+
+void helper_vaddecuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+{
+#ifdef CONFIG_INT128
+    int carry_out = (~a->u128 < b->u128);
+    if (!carry_out && (c->u128 & 1)) {
+        carry_out = ((a->u128 + b->u128 + 1) == 0) &&
+                    ((a->u128 != 0) || (b->u128 != 0));
+    }
+    r->u128 = carry_out;
+#else
+
+    int carry_in = c->u64[LO_IDX] & 1;
+    int carry_out = 0;
+    ppc_avr_t tmp;
+
+    carry_out = avr_qw_addc(&tmp, *a, *b);
+
+    if (!carry_out && carry_in) {
+        ppc_avr_t one = QW_ONE;
+        carry_out = avr_qw_addc(&tmp, tmp, one);
+    }
+    r->u64[HI_IDX] = 0;
+    r->u64[LO_IDX] = carry_out;
+#endif
+}
+
+void helper_vsubuqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+#ifdef CONFIG_INT128
+    r->u128 = a->u128 - b->u128;
+#else
+    ppc_avr_t tmp;
+    ppc_avr_t one = QW_ONE;
+
+    avr_qw_not(&tmp, *b);
+    avr_qw_add(&tmp, *a, tmp);
+    avr_qw_add(r, tmp, one);
+#endif
+}
+
+void helper_vsubeuqm(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+{
+#ifdef CONFIG_INT128
+    r->u128 = a->u128 + ~b->u128 + (c->u128 & 1);
+#else
+    ppc_avr_t tmp, sum;
+
+    avr_qw_not(&tmp, *b);
+    avr_qw_add(&sum, *a, tmp);
+
+    tmp.u64[HI_IDX] = 0;
+    tmp.u64[LO_IDX] = c->u64[LO_IDX] & 1;
+    avr_qw_add(r, sum, tmp);
+#endif
+}
+
+void helper_vsubcuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+#ifdef CONFIG_INT128
+    r->u128 = (~a->u128 < ~b->u128) ||
+                 (a->u128 + ~b->u128 == (__uint128_t)-1);
+#else
+    int carry = (avr_qw_cmpu(*a, *b) > 0);
+    if (!carry) {
+        ppc_avr_t tmp;
+        avr_qw_not(&tmp, *b);
+        avr_qw_add(&tmp, *a, tmp);
+        carry = ((tmp.s64[HI_IDX] == -1ull) && (tmp.s64[LO_IDX] == -1ull));
+    }
+    r->u64[HI_IDX] = 0;
+    r->u64[LO_IDX] = carry;
+#endif
+}
+
+void helper_vsubecuq(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
+{
+#ifdef CONFIG_INT128
+    r->u128 =
+        (~a->u128 < ~b->u128) ||
+        ((c->u128 & 1) && (a->u128 + ~b->u128 == (__uint128_t)-1));
+#else
+    int carry_in = c->u64[LO_IDX] & 1;
+    int carry_out = (avr_qw_cmpu(*a, *b) > 0);
+    if (!carry_out && carry_in) {
+        ppc_avr_t tmp;
+        avr_qw_not(&tmp, *b);
+        avr_qw_add(&tmp, *a, tmp);
+        carry_out = ((tmp.u64[HI_IDX] == -1ull) && (tmp.u64[LO_IDX] == -1ull));
+    }
+
+    r->u64[HI_IDX] = 0;
+    r->u64[LO_IDX] = carry_out;
+#endif
+}
+
 
 #undef VECTOR_FOR_INORDER_I
 #undef HI_IDX
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 3d38a25..c4d7f0f 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -7043,6 +7043,18 @@ GEN_VXFORM_ENV(vsubuws, 0, 26);
 GEN_VXFORM_ENV(vsubsbs, 0, 28);
 GEN_VXFORM_ENV(vsubshs, 0, 29);
 GEN_VXFORM_ENV(vsubsws, 0, 30);
+GEN_VXFORM(vadduqm, 0, 4);
+GEN_VXFORM(vaddcuq, 0, 5);
+GEN_VXFORM3(vaddeuqm, 30, 0);
+GEN_VXFORM3(vaddecuq, 30, 0);
+GEN_VXFORM_DUAL(vaddeuqm, PPC_NONE, PPC2_ALTIVEC_207, \
+            vaddecuq, PPC_NONE, PPC2_ALTIVEC_207)
+GEN_VXFORM(vsubuqm, 0, 20);
+GEN_VXFORM(vsubcuq, 0, 21);
+GEN_VXFORM3(vsubeuqm, 31, 0);
+GEN_VXFORM3(vsubecuq, 31, 0);
+GEN_VXFORM_DUAL(vsubeuqm, PPC_NONE, PPC2_ALTIVEC_207, \
+            vsubecuq, PPC_NONE, PPC2_ALTIVEC_207)
 GEN_VXFORM(vrlb, 2, 0);
 GEN_VXFORM(vrlh, 2, 1);
 GEN_VXFORM(vrlw, 2, 2);
@@ -10488,6 +10500,12 @@ GEN_VXFORM(vsubuws, 0, 26),
 GEN_VXFORM(vsubsbs, 0, 28),
 GEN_VXFORM(vsubshs, 0, 29),
 GEN_VXFORM(vsubsws, 0, 30),
+GEN_VXFORM_207(vadduqm, 0, 4),
+GEN_VXFORM_207(vaddcuq, 0, 5),
+GEN_VXFORM_DUAL(vaddeuqm, vaddecuq, 30, 0xFF, PPC_NONE, PPC2_ALTIVEC_207),
+GEN_VXFORM_207(vsubuqm, 0, 20),
+GEN_VXFORM_207(vsubcuq, 0, 21),
+GEN_VXFORM_DUAL(vsubeuqm, vsubecuq, 31, 0xFF, PPC_NONE, PPC2_ALTIVEC_207),
 GEN_VXFORM(vrlb, 2, 0),
 GEN_VXFORM(vrlh, 2, 1),
 GEN_VXFORM(vrlw, 2, 2),
-- 
1.8.1.4

  parent reply	other threads:[~2014-03-06 23:35 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-06 23:32 [Qemu-devel] [PULL 00/130] ppc patch queue 2014-03-05 Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 001/130] target-ppc: fix compile error when PPC_DUMP_CPU is enabled Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 002/130] target-ppc: fix LPCR SPR number Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 003/130] target-ppc: remove powerpc 970gx Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 004/130] target-ppc: fix SPR_CTRL/SPR_UCTRL register numbers Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 005/130] target-ppc: remove embedded MMU SPRs from 970, P5+/7/7+/8 Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 006/130] target-ppc: remove unsupported SPRs from 970 and P5+ Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 007/130] KVM: Split QEMUMachine typedef into separate header Alexander Graf
2014-03-07  7:31   ` Paolo Bonzini
2014-03-06 23:32 ` [Qemu-devel] [PULL 008/130] kvm: Add a new machine option kvm-type Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 009/130] target-ppc: dump DAR and DSISR Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 010/130] target-ppc: fix Authority Mask Register init value Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 011/130] mmu-hash64: fix Virtual Page Class Key Protection Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 012/130] PPC: KVM: fix "set one register" Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 013/130] PPC: KVM: add support for LPCR Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 014/130] spapr-pci: enable adding PHB via -device Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 015/130] spapr_vscsi: Fix REPORT_LUNS handling Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 016/130] target-ppc: disable unsupported modes for SPR_CTRL/SPR_UCTRL Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 017/130] target-ppc: Add set_fprf Argument to fload_invalid_op_excp() Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 018/130] target-ppc: General Support for VSX Helpers Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 019/130] target-ppc: Add VSX ISA2.06 xadd/xsub Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 020/130] target-ppc: Add VSX ISA2.06 xmul Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 021/130] target-ppc: Add VSX ISA2.06 xdiv Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 022/130] target-ppc: Add VSX ISA2.06 xre Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 023/130] target-ppc: Add VSX ISA2.06 xsqrt Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 024/130] target-ppc: Add VSX ISA2.06 xrsqrte Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 025/130] target-ppc: Add VSX ISA2.06 xtdiv Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 026/130] target-ppc: Add VSX ISA2.06 xtsqrt Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 027/130] target-ppc: Add VSX ISA2.06 Multiply Add Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 028/130] target-ppc: Add VSX xscmp*dp Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 029/130] target-ppc: Add VSX xmax/xmin Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 030/130] target-ppc: Add VSX Vector Compare Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 031/130] target-ppc: Add VSX Floating Point to Floating Point Conversion Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 032/130] target-ppc: Add VSX ISA2.06 Integer " Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 033/130] target-ppc: Add VSX Rounding Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 034/130] target-ppc: VSX Stage 4: Add VSX 2.07 Flag Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 035/130] target-ppc: VSX Stage 4: Refactor lxsdx Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 036/130] target-ppc: VSX Stage 4: Add lxsiwax, lxsiwzx and lxsspx Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 037/130] target-ppc: VSX Stage 4: Refactor stxsdx Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 038/130] target-ppc: VSX Stage 4: Add stxsiwx and stxsspx Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 039/130] target-ppc: VSX Stage 4: Add xsaddsp and xssubsp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 040/130] target-ppc: VSX Stage 4: Add xsmulsp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 041/130] target-ppc: VSX Stage 4: Add xsdivsp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 042/130] target-ppc: VSX Stage 4: Add xsresp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 043/130] target-ppc: VSX Stage 4: Add xssqrtsp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 044/130] target-ppc: VSX Stage 4: add xsrsqrtesp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 045/130] target-ppc: VSX Stage 4: Add Scalar SP Fused Multiply-Adds Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 046/130] target-ppc: VSX Stage 4: Add xscvsxdsp and xscvuxdsp Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 047/130] target-ppc: VSX Stage 4: Add xxleqv, xxlnand and xxlorc Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 048/130] target-ppc: Move To/From VSR Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 049/130] target-ppc: Floating Merge Word Instructions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 050/130] target-ppc: Scalar Round to Single Precision Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 051/130] target-ppc: Scalar Non-Signalling Conversions Alexander Graf
2014-03-06 23:32 ` [Qemu-devel] [PULL 052/130] target-ppc: Add ISA2.06 bpermd Instruction Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 053/130] target-ppc: Add Flag for ISA2.06 Divide Extended Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 054/130] target-ppc: Add ISA2.06 divdeu[o] Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 055/130] target-ppc: Add ISA2.06 divde[o] Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 056/130] target-ppc: Add ISA 2.06 divweu[o] Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 057/130] target-ppc: Add ISA 2.06 divwe[o] Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 058/130] target-ppc: Add Flag for ISA2.06 Atomic Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 059/130] target-ppc: Add ISA2.06 lbarx, lharx Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 060/130] target-ppc: Add ISA 2.06 stbcx. and sthcx. Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 061/130] target-ppc: Add Flag for ISA V2.06 Floating Point Conversion Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 062/130] target-ppc: Add ISA2.06 Float to Integer Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 063/130] target-ppc: Add ISA 2.06 fcfid[u][s] Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 064/130] target-ppc: Fix and enable fri[mnpz] Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 065/130] target-ppc: Add Flag for Power ISA V2.06 Floating Point Test Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 066/130] target-ppc: Add ISA 2.06 ftdiv Instruction Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 067/130] target-ppc: Add ISA 2.06 ftsqrt Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 068/130] target-ppc: Enable frsqrtes on Power7 and Power8 Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 069/130] target-ppc: Add ISA2.06 lfiwzx Instruction Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 070/130] PPC: KVM: store SLB slot number Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 071/130] virtex_ml507: Add support for loading initrd images Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 072/130] PPC: KVM: suppress warnings about not supported SPRs Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 073/130] Add Enhanced Three-Speed Ethernet Controller (eTSEC) Alexander Graf
2014-03-09  8:02   ` Paolo Bonzini
2014-03-12 11:41     ` Fabien Chouteau
2014-03-12 18:22       ` Paolo Bonzini
2014-03-12 18:39         ` Andreas Färber
2014-03-14 11:23   ` Paolo Bonzini
2014-03-14 16:42     ` Fabien Chouteau
2014-03-06 23:33 ` [Qemu-devel] [PULL 074/130] spapr: support only ELF kernel images Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 075/130] moxie: fix load_elf() usage Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 076/130] elf-loader: add more return codes Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 077/130] spapr: print more detailed error message on failed load_elf() Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 078/130] target-ppc: Update external_htab even when HTAB is managed by kernel Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 079/130] qdev: Keep global allocation counter per bus Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 080/130] target-ppc: add extended opcodes for dcbt/dcbtst Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 081/130] target-ppc: Fix xxpermdi When T==A or T==B Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 082/130] target-ppc: Add Flag for bctar Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 083/130] target-ppc: Add Target Address SPR (TAR) to Power8 Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 084/130] target-ppc: Add bctar Instruction Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 085/130] target-ppc: Add Flag for ISA 2.07 Load/Store Quadword Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 086/130] target-ppc: Add is_user_mode Utility Routine Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 087/130] target-ppc: Load Quadword Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 088/130] target-ppc: Store Quadword Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 089/130] target-ppc: Add Load Quadword and Reserve Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 090/130] target-ppc: Add Store Quadword Conditional Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 091/130] target-ppc: Altivec 2.07: Add Instruction Flag Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 092/130] target-ppc: Altivec 2.07: Update AVR Structure Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 093/130] target-ppc: Altivec 2.07: Add GEN_VXFORM3 Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 094/130] target-ppc: Altivec 2.07: Add Support for Dual Altivec Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 095/130] target-ppc: Altivec 2.07: Add Opcode Macro for VX Form Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 096/130] target-ppc: Altivec 2.07: Add Support for R-Form Dual Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 097/130] target-ppc: Altivec 2.07: Vector Logical Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 098/130] target-ppc: Altivec 2.07: Add/Subtract Unsigned Doubleword Modulo Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 099/130] target-ppc: Altivec 2.07: Change VMUL_DO to Support 64-bit Integers Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 100/130] target-ppc: Altivec 2.07: Multiply Even/Odd Word Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 101/130] target-ppc: Altivec 2.07: vmuluw Instruction Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 102/130] target-ppc: Altivec 2.07: Add Vector Count Leading Zeroes Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 103/130] target-ppc: Altivec 2.07: Vector Population Count Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 104/130] target-ppc: Altivec 2.07: Vector Min/Max Doubleword Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 105/130] target-ppc: Altivec 2.07: Pack " Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 106/130] target-ppc: Altivec 2.07: Unpack Signed Word Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 107/130] target-ppc: Altivec 2.07: Vector Merge Instructions Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 108/130] target-ppc: Altivec 2.07: Change Bit Masks to Support 64-bit Rotates and Shifts Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 109/130] target-ppc: Altivec 2.07: Vector Doubleword Rotate and Shift Instructions Alexander Graf
2014-03-06 23:33 ` Alexander Graf [this message]
2014-03-06 23:33 ` [Qemu-devel] [PULL 111/130] target-ppc: Altivec 2.07: vbpermq Instruction Alexander Graf
2014-03-06 23:33 ` [Qemu-devel] [PULL 112/130] target-ppc: Altivec 2.07: Doubleword Compares Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 113/130] target-ppc: Altivec 2.07: Vector Gather Bits by Bytes Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 114/130] target-ppc: Altivec 2.07: Vector Polynomial Multiply Sum Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 115/130] target-ppc: Altivec 2.07: Binary Coded Decimal Instructions Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 116/130] target-ppc: Altivec 2.07: AES Instructions Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 117/130] target-ppc: Altivec 2.07: Vector SHA Sigma Instructions Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 118/130] target-ppc: Altivec 2.07: Vector Permute and Exclusive OR Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 119/130] spapr-vlan: flush queue whenever can_receive can go from false to true Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 120/130] target-ppc/translate.c: Use ULL suffix for 64 bit constants Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 121/130] PPC: sPAPR: Only use getpagesize() when we run with kvm Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 122/130] target-ppc: Fix Compiler Warnings Due to 64-Bit Constants Declared as UL Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 123/130] target-ppc: Use Additional Temporary in stqcx Case Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 124/130] target-ppc: Fix htab_mask calculation Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 125/130] target-ppc: Fix page table lookup with kvm enabled Alexander Graf
2014-03-14 11:26   ` Paolo Bonzini
2014-03-14 13:13     ` Aneesh Kumar K.V
2014-03-14 13:23       ` Paolo Bonzini
2014-03-06 23:34 ` [Qemu-devel] [PULL 126/130] target-ppc: Change the hpte store API Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 127/130] target-ppc: Update ppc_hash64_store_hpte to support updating in-kernel htab Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 128/130] target-ppc: Introduce hypervisor call H_GET_TCE Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 129/130] target-ppc: add PowerPCCPU::cpu_dt_id Alexander Graf
2014-03-06 23:34 ` [Qemu-devel] [PULL 130/130] target-ppc: spapr: e500: fix to use cpu_dt_id Alexander Graf
2014-03-07 17:16 ` [Qemu-devel] [PULL 00/130] ppc patch queue 2014-03-05 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=1394148857-19607-111-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=aliguori@amazon.com \
    --cc=aurelien@aurel32.net \
    --cc=blauwirbel@gmail.com \
    --cc=peter.maydell@linaro.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).