mbox series

[v3,0/3] OpenRISC glibc hard float support

Message ID 20240503172731.675178-1-shorne@gmail.com
Headers show
Series OpenRISC glibc hard float support | expand

Message

Stafford Horne May 3, 2024, 5:27 p.m. UTC
This series adds hardware floating point support to the OpenRIS glibc port.

I will keep this cover letter short and point to patch 2/3.  It contains details
about the change and testing results.

Changes since v2:

 - Remove spurious whitespace cleanup.
 - Add a bit more docs and explaination about the FPSCR register flags.
 - Add Reviewed-by from Adhemerval.

Changes since v1:

 - Added combat symbols for getcontext, setcontext etc. Supporting old
   mcontext_t ABI.
 - Split fpu ulps file out to separate patch to make the main patch smaller.

Stafford Horne (3):
  or1k: Add hard float libm-test-ulps
  or1k: Add hard float support
  build-many-glibcs.py: Add openrisc hard float glibc variant

 scripts/build-many-glibcs.py                  |    5 +-
 sysdeps/or1k/fpu/fclrexcpt.c                  |   44 +
 sysdeps/or1k/fpu/fegetenv.c                   |   32 +
 sysdeps/or1k/fpu/fegetmode.c                  |   29 +
 sysdeps/or1k/fpu/fegetround.c                 |   29 +
 sysdeps/or1k/fpu/feholdexcpt.c                |   33 +
 sysdeps/or1k/fpu/fenv_private.h               |  199 +++
 sysdeps/or1k/fpu/fesetenv.c                   |   32 +
 sysdeps/or1k/fpu/fesetexcept.c                |   35 +
 sysdeps/or1k/fpu/fesetmode.c                  |   39 +
 sysdeps/or1k/fpu/fesetround.c                 |   39 +
 sysdeps/or1k/fpu/feupdateenv.c                |   33 +
 sysdeps/or1k/fpu/fgetexcptflg.c               |   29 +
 .../or1k/fpu/fix-fp-int-convert-overflow.h    |   38 +
 sysdeps/or1k/fpu/fraiseexcpt.c                |   67 +
 sysdeps/or1k/fpu/fsetexcptflg.c               |   43 +
 sysdeps/or1k/fpu/ftestexcept.c                |   27 +
 sysdeps/or1k/fpu/get-rounding-mode.h          |   38 +
 sysdeps/or1k/fpu/libm-test-ulps               | 1115 +++++++++++++++++
 sysdeps/or1k/fpu/libm-test-ulps-name          |    1 +
 sysdeps/or1k/fpu_control.h                    |   89 ++
 sysdeps/or1k/libm-test-ulps-name              |    1 -
 sysdeps/or1k/math-tests-snan-payload.h        |   26 +
 sysdeps/or1k/math-tests-trap.h                |   27 +
 sysdeps/or1k/{ => nofpu}/libm-test-ulps       |    0
 sysdeps/or1k/nofpu/libm-test-ulps-name        |    1 +
 sysdeps/or1k/sfp-machine.h                    |   17 +
 sysdeps/unix/sysv/linux/or1k/Versions         |   14 +
 .../unix/sysv/linux/or1k/getcontext-common.S  |   88 ++
 sysdeps/unix/sysv/linux/or1k/getcontext.S     |   69 +-
 sysdeps/unix/sysv/linux/or1k/libc.abilist     |    4 +
 sysdeps/unix/sysv/linux/or1k/makecontext.c    |   49 +-
 .../unix/sysv/linux/or1k/setcontext-common.S  |  120 ++
 sysdeps/unix/sysv/linux/or1k/setcontext.S     |  102 +-
 .../unix/sysv/linux/or1k/swapcontext-common.S |  139 ++
 sysdeps/unix/sysv/linux/or1k/swapcontext.S    |  109 +-
 sysdeps/unix/sysv/linux/or1k/sys/ucontext.h   |    1 +
 sysdeps/unix/sysv/linux/or1k/ucontext_i.sym   |    3 +
 38 files changed, 2545 insertions(+), 221 deletions(-)
 create mode 100644 sysdeps/or1k/fpu/fclrexcpt.c
 create mode 100644 sysdeps/or1k/fpu/fegetenv.c
 create mode 100644 sysdeps/or1k/fpu/fegetmode.c
 create mode 100644 sysdeps/or1k/fpu/fegetround.c
 create mode 100644 sysdeps/or1k/fpu/feholdexcpt.c
 create mode 100644 sysdeps/or1k/fpu/fenv_private.h
 create mode 100644 sysdeps/or1k/fpu/fesetenv.c
 create mode 100644 sysdeps/or1k/fpu/fesetexcept.c
 create mode 100644 sysdeps/or1k/fpu/fesetmode.c
 create mode 100644 sysdeps/or1k/fpu/fesetround.c
 create mode 100644 sysdeps/or1k/fpu/feupdateenv.c
 create mode 100644 sysdeps/or1k/fpu/fgetexcptflg.c
 create mode 100644 sysdeps/or1k/fpu/fix-fp-int-convert-overflow.h
 create mode 100644 sysdeps/or1k/fpu/fraiseexcpt.c
 create mode 100644 sysdeps/or1k/fpu/fsetexcptflg.c
 create mode 100644 sysdeps/or1k/fpu/ftestexcept.c
 create mode 100644 sysdeps/or1k/fpu/get-rounding-mode.h
 create mode 100644 sysdeps/or1k/fpu/libm-test-ulps
 create mode 100644 sysdeps/or1k/fpu/libm-test-ulps-name
 create mode 100644 sysdeps/or1k/fpu_control.h
 delete mode 100644 sysdeps/or1k/libm-test-ulps-name
 create mode 100644 sysdeps/or1k/math-tests-snan-payload.h
 create mode 100644 sysdeps/or1k/math-tests-trap.h
 rename sysdeps/or1k/{ => nofpu}/libm-test-ulps (100%)
 create mode 100644 sysdeps/or1k/nofpu/libm-test-ulps-name
 create mode 100644 sysdeps/unix/sysv/linux/or1k/Versions
 create mode 100644 sysdeps/unix/sysv/linux/or1k/getcontext-common.S
 create mode 100644 sysdeps/unix/sysv/linux/or1k/setcontext-common.S
 create mode 100644 sysdeps/unix/sysv/linux/or1k/swapcontext-common.S