v3: - moves shift functions to host-utils.c and added config_int128 guard - changes Makefile to always compile host-utils.c - redesigns bcd[u]trunc to use bitwise operations - removes "target-ppc: Implement bcd_is_valid function" (merged)
v2: - bcd[s,sr,us] uses 1 byte for shifting instead of 4 bytes - left/right functions in host-utils are out of CONFIG_INT128 - fixes overflowing issue in left shift and added a testcase This serie contains 5 new instructions for POWER9 ISA3.0, left/right shifts for unsigned quadwords and a small improvement to check whether a bcd value is valid or not. bcds.: Decimal signed shift bcdus.: Decimal unsigned shift bcdsr.: Decimal shift and round bcdtrunc.: Decimal signed trucate bcdutrunc.: Decimal unsigned truncate Jose Ricardo Ziviani (6): target-ppc: Implement unsigned quadword left/right shift and unit tests target-ppc: Implement bcds. instruction target-ppc: Implement bcdus. instruction target-ppc: Implement bcdsr. instruction target-ppc: Implement bcdtrunc. instruction target-ppc: Implement bcdutrunc. instruction include/qemu/host-utils.h | 3 + target-ppc/helper.h | 5 + target-ppc/int_helper.c | 220 ++++++++++++++++++++++++++++++++++++ target-ppc/translate/vmx-impl.inc.c | 16 +++ target-ppc/translate/vmx-ops.inc.c | 13 ++- tests/Makefile.include | 5 +- tests/test-shift128.c | 98 ++++++++++++++++ util/Makefile.objs | 2 +- util/host-utils.c | 44 ++++++++ 9 files changed, 399 insertions(+), 7 deletions(-) create mode 100644 tests/test-shift128.c -- 2.7.4