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 bcdtrunc.: Decimal unsigned truncate Jose Ricardo Ziviani (7): target-ppc: Implement bcd_is_valid function 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 bcdtrunc. instruction include/qemu/host-utils.h | 43 +++++++ target-ppc/helper.h | 5 + target-ppc/int_helper.c | 229 +++++++++++++++++++++++++++++++++++- 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 +++++++++++++++ 7 files changed, 399 insertions(+), 10 deletions(-) create mode 100644 tests/test-shift128.c -- 2.7.4