summaryrefslogtreecommitdiff
path: root/target-ppc/int_helper.c
diff options
context:
space:
mode:
authorTom Musta <tommusta@gmail.com>2014-02-12 15:23:04 -0600
committerAlexander Graf <agraf@suse.de>2014-03-05 03:06:55 +0100
commite13500b3c36533e22842bac28f40b2c86ded8c0c (patch)
tree6d02edd5aac24b6034396f3d115a425e41be7de1 /target-ppc/int_helper.c
parentf293f04ab5301f688ce7c9fe3006a787611c2485 (diff)
downloadqemu-e13500b3c36533e22842bac28f40b2c86ded8c0c.tar.gz
target-ppc: Altivec 2.07: Vector Population Count Instructions
This patch adds the Vector Population Count instructions introduced in Power ISA Version 2.07: vpopcntb, vpopcnth, vpopcntw and vpopcntd. Signed-off-by: Tom Musta <tommusta@gmail.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-ppc/int_helper.c')
-rw-r--r--target-ppc/int_helper.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/target-ppc/int_helper.c b/target-ppc/int_helper.c
index 7fca9f093b..3b67ae363f 100644
--- a/target-ppc/int_helper.c
+++ b/target-ppc/int_helper.c
@@ -1549,6 +1549,20 @@ VGENERIC_DO(clzd, u64)
#undef clzw
#undef clzd
+#define popcntb(v) ctpop8(v)
+#define popcnth(v) ctpop16(v)
+#define popcntw(v) ctpop32(v)
+#define popcntd(v) ctpop64(v)
+
+VGENERIC_DO(popcntb, u8)
+VGENERIC_DO(popcnth, u16)
+VGENERIC_DO(popcntw, u32)
+VGENERIC_DO(popcntd, u64)
+
+#undef popcntb
+#undef popcnth
+#undef popcntw
+#undef popcntd
#undef VGENERIC_DO