[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 28/40] Add vupk{h,l}s{b,h} instructions.
From: |
Nathan Froyd |
Subject: |
[Qemu-devel] [PATCH 28/40] Add vupk{h,l}s{b,h} instructions. |
Date: |
Tue, 30 Dec 2008 19:10:10 -0800 |
Signed-off-by: Nathan Froyd <address@hidden>
---
target-ppc/helper.h | 4 ++++
target-ppc/op_helper.c | 21 +++++++++++++++++++++
target-ppc/translate.c | 4 ++++
3 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/target-ppc/helper.h b/target-ppc/helper.h
index 9352a67..26ff038 100644
--- a/target-ppc/helper.h
+++ b/target-ppc/helper.h
@@ -187,6 +187,10 @@ DEF_HELPER_3(vsplth, void, avr, avr, i32)
DEF_HELPER_3(vspltw, void, avr, avr, i32)
DEF_HELPER_2(vupkhpx, void, avr, avr)
DEF_HELPER_2(vupklpx, void, avr, avr)
+DEF_HELPER_2(vupkhsb, void, avr, avr)
+DEF_HELPER_2(vupkhsh, void, avr, avr)
+DEF_HELPER_2(vupklsb, void, avr, avr)
+DEF_HELPER_2(vupklsh, void, 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 5d8e678..29c1f5d 100644
--- a/target-ppc/op_helper.c
+++ b/target-ppc/op_helper.c
@@ -2407,6 +2407,27 @@ VUPKPX(lpx, UPKLO)
VUPKPX(hpx, UPKHI)
#undef VUPKPX
+#define VUPK(suffix, unpacked, packee, hi) \
+ void helper_vupk##suffix (ppc_avr_t *r, ppc_avr_t *b) \
+ { \
+ int i; \
+ ppc_avr_t result; \
+ if (hi) { \
+ for (i = 0; i < ARRAY_SIZE(r->unpacked); i++) { \
+ result.unpacked[i] = b->packee[i]; \
+ } \
+ } else { \
+ for (i = ARRAY_SIZE(r->unpacked); i < ARRAY_SIZE(r->packee); i++)
{ \
+ result.unpacked[i-ARRAY_SIZE(r->unpacked)] = b->packee[i]; \
+ } \
+ } \
+ *r = result; \
+ }
+VUPK(hsb, s16, s8, UPKHI)
+VUPK(hsh, s32, s16, UPKHI)
+VUPK(lsb, s16, s8, UPKLO)
+VUPK(lsh, s32, s16, UPKLO)
+#undef VUPK
#undef UPKHI
#undef UPKLO
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index a280db1..17784d7 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -6340,6 +6340,10 @@ GEN_VXFORM(vsr, 2, 11);
tcg_temp_free_ptr(rd); \
}
+GEN_VXFORM_NOA(vupkhsb, 7, 8);
+GEN_VXFORM_NOA(vupkhsh, 7, 9);
+GEN_VXFORM_NOA(vupklsb, 7, 10);
+GEN_VXFORM_NOA(vupklsh, 7, 11);
GEN_VXFORM_NOA(vupkhpx, 7, 13);
GEN_VXFORM_NOA(vupklpx, 7, 15);
--
1.6.0.5
- [Qemu-devel] [PATCH 12/40] Add vsr{,a}{b,h,w} instructions., (continued)
- [Qemu-devel] [PATCH 12/40] Add vsr{,a}{b,h,w} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 29/40] Add GEN_VAFORM_PAIRED macro for subsequent instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 02/40] Add helper macros for later patches., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 11/40] Add vmul{e,o}{s,u}{b,h} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 16/40] Add lvs{l,r} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 22/40] Add GEN_VXFORM_SIMM macro for subsequent instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 39/40] Add {l,st}ve{b,h,w}x instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 01/40] Fix TCG error in gen_avr_ptr., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 18/40] Add v{add, sub}{s, u}{b, h, w}s instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 27/40] Add vupk{h,l}px instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 28/40] Add vupk{h,l}s{b,h} instructions.,
Nathan Froyd <=
- [Qemu-devel] [PATCH 40/40] Add vsumsws, vsum2sws, and vsum4{sbs, shs, ubs} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 36/40] Add vmsumuh{m,s} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 03/40] Add GEN_VXFORM macro for subsequent instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 23/40] Add vspltis{b,h,w} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 13/40] Add vsl{b,h,w} instructions., Nathan Froyd, 2008/12/30
- [Qemu-devel] [PATCH 05/40] Add vavg{s,u}{b,h,w} instructions., Nathan Froyd, 2008/12/30
- [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
- Prev by Date:
[Qemu-devel] [PATCH 27/40] Add vupk{h,l}px instructions.
- Next by Date:
[Qemu-devel] [PATCH 40/40] Add vsumsws, vsum2sws, and vsum4{sbs, shs, ubs} instructions.
- Previous by thread:
[Qemu-devel] [PATCH 27/40] Add vupk{h,l}px instructions.
- Next by thread:
[Qemu-devel] [PATCH 40/40] Add vsumsws, vsum2sws, and vsum4{sbs, shs, ubs} instructions.
- Index(es):