[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 14/40] Add vs{l,r}o instructions.
From: |
Nathan Froyd |
Subject: |
[Qemu-devel] [PATCH 14/40] Add vs{l,r}o instructions. |
Date: |
Tue, 30 Dec 2008 19:09:56 -0800 |
Signed-off-by: Nathan Froyd <address@hidden>
---
target-ppc/helper.h | 2 ++
target-ppc/op_helper.c | 27 +++++++++++++++++++++++++++
target-ppc/translate.c | 2 ++
3 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/target-ppc/helper.h b/target-ppc/helper.h
index 7f3b011..8f6f059 100644
--- a/target-ppc/helper.h
+++ b/target-ppc/helper.h
@@ -155,6 +155,8 @@ DEF_HELPER_3(vsrw, void, avr, avr, avr)
DEF_HELPER_3(vslb, void, avr, avr, avr)
DEF_HELPER_3(vslh, void, avr, avr, avr)
DEF_HELPER_3(vslw, void, avr, avr, avr)
+DEF_HELPER_3(vslo, void, avr, avr, avr)
+DEF_HELPER_3(vsro, void, avr, avr, avr)
DEF_HELPER_1(efscfsi, i32, i32)
DEF_HELPER_1(efscfui, i32, i32)
diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c
index 4addf9a..5451403 100644
--- a/target-ppc/op_helper.c
+++ b/target-ppc/op_helper.c
@@ -17,6 +17,7 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <string.h>
#include "exec.h"
#include "host-utils.h"
#include "helper.h"
@@ -2137,6 +2138,19 @@ VSL(h, u16)
VSL(w, u32)
#undef VSL
+void helper_vslo (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+ int sh = (b->u8[LO_IDX*0xf] >> 3) & 0xf;
+
+#if defined (WORDS_BIGENDIAN)
+ memmove (&r->u8[0], &a->u8[sh], 0x10-sh);
+ memset (&r->u8[16-sh], 0, sh);
+#else
+ memmove (&r->u8[sh], &a->u8[0], 0x10-sh);
+ memset (&r->u8[0], 0, sh);
+#endif
+}
+
#define VSR(suffix, element) \
void helper_vsr##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
{ \
@@ -2155,6 +2169,19 @@ VSR(h, u16)
VSR(w, u32)
#undef VSR
+void helper_vsro (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
+{
+ int sh = (b->u8[LO_IDX*0xf] >> 3) & 0xf;
+
+#if defined (WORDS_BIGENDIAN)
+ memmove (&r->u8[sh], &a->u8[0], 0x10-sh);
+ memset (&r->u8[0], 0, sh);
+#else
+ memmove (&r->u8[0], &a->u8[sh], 0x10-sh);
+ memset (&r->u8[0x10-sh], 0, sh);
+#endif
+}
+
#undef VECTOR_FOR_INORDER_I
#undef HI_IDX
#undef LO_IDX
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index ff3fcb1..2c4b29a 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -6228,6 +6228,8 @@ GEN_VXFORM(vsrw, 2, 10);
GEN_VXFORM(vsrab, 2, 12);
GEN_VXFORM(vsrah, 2, 13);
GEN_VXFORM(vsraw, 2, 14);
+GEN_VXFORM(vslo, 6, 16);
+GEN_VXFORM(vsro, 6, 17);
#define GEN_VXRFORM1(opname, name, str, opc2, opc3) \
GEN_HANDLER2(name, str, 0x4, opc2, opc3, 0x00000000, PPC_ALTIVEC) \
--
1.6.0.5
- [Qemu-devel] [PATCH 24/40] Add GEN_VXFORM_UIMM macro for subsequent instructions., (continued)
- [Qemu-devel] [PATCH 24/40] Add GEN_VXFORM_UIMM macro for subsequent instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 21/40] Add vsldoi instruction., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 30/40] Add vmsum{u,m}bm instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 26/40] Add GEN_VXFORM_NOA macro for subsequent instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 06/40] Add v{min, max}{s, u}{b, h, w} instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 33/40] Add vpks{h, w}{s, u}s, vpku{h, w}us, and vpku{h, w}um instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 07/40] Add GEN_VXRFORM{, 1} macros for subsequent instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 08/40] Add vcmpequ{b, h, w} and vcmpgt{s, u}{b, h, w} instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 19/40] Add vrl{b,h,w} instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 32/40] Add saturating arithmetic conversion functions for subsequent instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 14/40] Add vs{l,r}o instructions.,
Nathan Froyd <=
- [Qemu-devel] [PATCH 34/40] Add vpkpx instruction., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 17/40] Add m{f,t}vscr instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 35/40] Add vmh{,r}addshs instructions., Nathan Froyd, 2008/12/31
- [Qemu-devel] [PATCH 38/40] Add vmladduhm instruction., Nathan Froyd, 2008/12/31