Re: [Qemu-devel] [PATCH v5 0/7] POWER9 TCG enablements - BCD functions - final part

2017-01-11 Thread David Gibson
On Tue, Jan 10, 2017 at 12:10:07AM -0200, Jose Ricardo Ziviani wrote:
> v5:
>  - removes 'unlikely' gcc branch pred. hints from not unlikely places
>  - adds comments in host-utils functions
>  - adds more test cases for shift functions
>  - handles "shift backwards" with signed shifts
>  - rebases branch
> 
> v4:
>  - improves functions to behave exactly like the target
> 
> 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.

Patches 1-5 applied to ppc-for-2.9, remainder left with a suggestion
for improvement.

> 
> bcds.: Decimal signed shift
> bcdus.: Decimal unsigned shift
> bcdsr.: Decimal shift and round
> bcdtrunc.: Decimal signed trucate
> bcdutrunc.: Decimal unsigned truncate
> 
> Jose Ricardo Ziviani (7):
>   host-utils: Move 128-bit guard macro to .c file
>   host-utils: Implement unsigned quadword left/right shift and unit
> tests
>   ppc: Implement bcds. instruction
>   ppc: Implement bcdus. instruction
>   ppc: Implement bcdsr. instruction
>   ppc: Implement bcdtrunc. instruction
>   ppc: Implement bcdutrunc. instruction
> 
>  include/qemu/host-utils.h   |  27 +
>  target/ppc/helper.h |   5 +
>  target/ppc/int_helper.c | 217 
> 
>  target/ppc/translate/vmx-impl.inc.c |  16 +++
>  target/ppc/translate/vmx-ops.inc.c  |  13 ++-
>  tests/Makefile.include  |   5 +-
>  tests/test-shift128.c   | 139 +++
>  util/Makefile.objs  |   2 +-
>  util/host-utils.c   |  66 +++
>  9 files changed, 483 insertions(+), 7 deletions(-)
>  create mode 100644 tests/test-shift128.c
> 

-- 
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson


signature.asc
Description: PGP signature


[Qemu-devel] [PATCH v5 0/7] POWER9 TCG enablements - BCD functions - final part

2017-01-09 Thread Jose Ricardo Ziviani
v5:
 - removes 'unlikely' gcc branch pred. hints from not unlikely places
 - adds comments in host-utils functions
 - adds more test cases for shift functions
 - handles "shift backwards" with signed shifts
 - rebases branch

v4:
 - improves functions to behave exactly like the target

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 (7):
  host-utils: Move 128-bit guard macro to .c file
  host-utils: Implement unsigned quadword left/right shift and unit
tests
  ppc: Implement bcds. instruction
  ppc: Implement bcdus. instruction
  ppc: Implement bcdsr. instruction
  ppc: Implement bcdtrunc. instruction
  ppc: Implement bcdutrunc. instruction

 include/qemu/host-utils.h   |  27 +
 target/ppc/helper.h |   5 +
 target/ppc/int_helper.c | 217 
 target/ppc/translate/vmx-impl.inc.c |  16 +++
 target/ppc/translate/vmx-ops.inc.c  |  13 ++-
 tests/Makefile.include  |   5 +-
 tests/test-shift128.c   | 139 +++
 util/Makefile.objs  |   2 +-
 util/host-utils.c   |  66 +++
 9 files changed, 483 insertions(+), 7 deletions(-)
 create mode 100644 tests/test-shift128.c

-- 
2.7.4