[PULL,00/22] re-factor softfloat and add fp16 functions

Message ID 20180221110523.859-1-alex.bennee@linaro.org
Headers show
Series
  • re-factor softfloat and add fp16 functions
Related show

Message

Alex Bennée Feb. 21, 2018, 11:05 a.m.
The following changes since commit a6e0344fa0e09413324835ae122c4cadd7890231:

  Merge remote-tracking branch 'remotes/kraxel/tags/ui-20180220-pull-request' into staging (2018-02-20 14:05:00 +0000)

are available in the Git repository at:

  https://github.com/stsquad/qemu.git tags/pull-softfloat-refactor-210218-1

for you to fetch changes up to c13bb2da9eedfbc5886c8048df1bc1114b285fb0:

  fpu/softfloat: re-factor sqrt (2018-02-21 10:21:54 +0000)

----------------------------------------------------------------
This is the re-factor of softfloat:

  - shared common code path float16/32/64
  - well commented and easy to follow code
  - added a bunch of float16 support

While some operations are slower the key ones exercised by the
floating point dbt-bench are the same: https://i.imgur.com/oXNJNql.png

----------------------------------------------------------------
Alex Bennée (22):
      fpu/softfloat: implement float16_squash_input_denormal
      include/fpu/softfloat: remove USE_SOFTFLOAT_STRUCT_TYPES
      fpu/softfloat-types: new header to prevent excessive re-builds
      target/*/cpu.h: remove softfloat.h
      include/fpu/softfloat: implement float16_abs helper
      include/fpu/softfloat: implement float16_chs helper
      include/fpu/softfloat: implement float16_set_sign helper
      include/fpu/softfloat: add some float16 constants
      fpu/softfloat: improve comments on ARM NaN propagation
      fpu/softfloat: move the extract functions to the top of the file
      fpu/softfloat: define decompose structures
      fpu/softfloat: re-factor add/sub
      fpu/softfloat: re-factor mul
      fpu/softfloat: re-factor div
      fpu/softfloat: re-factor muladd
      fpu/softfloat: re-factor round_to_int
      fpu/softfloat: re-factor float to int/uint
      fpu/softfloat: re-factor int/uint to float
      fpu/softfloat: re-factor scalbn
      fpu/softfloat: re-factor minmax
      fpu/softfloat: re-factor compare
      fpu/softfloat: re-factor sqrt

 fpu/softfloat-macros.h          |   48 +
 fpu/softfloat-specialize.h      |  109 +-
 fpu/softfloat.c                 | 4550 ++++++++++++++++-----------------------
 include/fpu/softfloat-types.h   |  179 ++
 include/fpu/softfloat.h         |  202 +-
 include/qemu/bswap.h            |    2 +-
 target/alpha/cpu.h              |    2 -
 target/arm/cpu.c                |    1 +
 target/arm/cpu.h                |    2 -
 target/arm/helper-a64.c         |    1 +
 target/arm/helper.c             |    1 +
 target/arm/neon_helper.c        |    1 +
 target/hppa/cpu.c               |    1 +
 target/hppa/cpu.h               |    1 -
 target/hppa/op_helper.c         |    2 +-
 target/i386/cpu.h               |    4 -
 target/i386/fpu_helper.c        |    1 +
 target/m68k/cpu.c               |    2 +-
 target/m68k/cpu.h               |    1 -
 target/m68k/fpu_helper.c        |    1 +
 target/m68k/helper.c            |    1 +
 target/m68k/translate.c         |    2 +
 target/microblaze/cpu.c         |    1 +
 target/microblaze/cpu.h         |    2 +-
 target/microblaze/op_helper.c   |    1 +
 target/moxie/cpu.h              |    1 -
 target/nios2/cpu.h              |    1 -
 target/openrisc/cpu.h           |    1 -
 target/openrisc/fpu_helper.c    |    1 +
 target/ppc/cpu.h                |    1 -
 target/ppc/fpu_helper.c         |    1 +
 target/ppc/int_helper.c         |    1 +
 target/ppc/translate_init.c     |    1 +
 target/s390x/cpu.c              |    1 +
 target/s390x/cpu.h              |    2 -
 target/s390x/fpu_helper.c       |    1 +
 target/sh4/cpu.c                |    1 +
 target/sh4/cpu.h                |    2 -
 target/sh4/op_helper.c          |    1 +
 target/sparc/cpu.h              |    2 -
 target/sparc/fop_helper.c       |    1 +
 target/tricore/cpu.h            |    1 -
 target/tricore/fpu_helper.c     |    1 +
 target/tricore/helper.c         |    1 +
 target/unicore32/cpu.c          |    1 +
 target/unicore32/cpu.h          |    1 -
 target/unicore32/ucf64_helper.c |    1 +
 target/xtensa/cpu.h             |    1 -
 target/xtensa/op_helper.c       |    1 +
 49 files changed, 2204 insertions(+), 2941 deletions(-)
 create mode 100644 include/fpu/softfloat-types.h


-- 
2.15.1

Comments

Peter Maydell Feb. 22, 2018, 11:36 a.m. | #1
On 21 February 2018 at 11:05, Alex Bennée <alex.bennee@linaro.org> wrote:
> The following changes since commit a6e0344fa0e09413324835ae122c4cadd7890231:

>

>   Merge remote-tracking branch 'remotes/kraxel/tags/ui-20180220-pull-request' into staging (2018-02-20 14:05:00 +0000)

>

> are available in the Git repository at:

>

>   https://github.com/stsquad/qemu.git tags/pull-softfloat-refactor-210218-1

>

> for you to fetch changes up to c13bb2da9eedfbc5886c8048df1bc1114b285fb0:

>

>   fpu/softfloat: re-factor sqrt (2018-02-21 10:21:54 +0000)

>

> ----------------------------------------------------------------

> This is the re-factor of softfloat:

>

>   - shared common code path float16/32/64

>   - well commented and easy to follow code

>   - added a bunch of float16 support

>

> While some operations are slower the key ones exercised by the

> floating point dbt-bench are the same: https://i.imgur.com/oXNJNql.png


Applied, thanks.

-- PMM