mbox series

[v3,00/26] target/m68k: fpu improvements

Message ID 20240909172823.649837-1-richard.henderson@linaro.org
Headers show
Series target/m68k: fpu improvements | expand

Message

Richard Henderson Sept. 9, 2024, 5:27 p.m. UTC
Supercedes: 20240812004451.13711-1-richard.henderson@linaro.org
("[PATCH for-9.2 v2 0/4] target/m68k: Implement fmove.p")

Changes for v3:
  - Implement FPSR.EXC.  In particular, packed decimal sets a
    different inexact bit.
  - Lots of cleanup to the address/load/store translation, in
    order to be able to pass down insn+ext only to gen_store_fp,
    and not store it in DisasContext.
  - Implement FPIAR stub.


r~


Richard Henderson (26):
  target/m68k: Always return a temporary from gen_lea_mode
  target/m68k: Add FPSR exception bit defines
  target/m68k: Restore fp rounding mode on vm load
  target/m68k: Keep FPSR up-to-date
  target/m68k: Update FPSR.EXC
  softfloat: Set QEMU_NO_HARDFLOAT for m68k
  target/m68k: Invoke update_fpsr for FMOVECR
  target/m68k: Introduce M68K_FEATURE_FPU_PACKED_DECIMAL
  target/m68k: Merge gen_ea into SRC_EA and DEST_EA
  target/m68k: Use g_assert_not_reached in gen_lea_mode and gen_ea_mode
  target/m68k: Use OS_UNSIZED in LEA, PEA, JMP
  target/m68k: Move pre-dec/post-inc to gen_lea_mode
  target/m68k: Split gen_ea_mode for load/store
  target/m68k: Remove env argument to gen_lea_indexed
  target/m68k: Remove env argument to gen_lea_mode
  target/m68k: Remove env argument to gen_load_mode
  target/m68k: Remove env argument to gen_store_mode
  target/m68k: Remove env argument to gen_ea_mode_fp
  target/m68k: Split gen_ea_mode_fp for load/store
  target/m68k: Move gen_addr_fault into gen_{load,store}_mode_fp
  target/m68k: Merge gen_load_fp, gen_load_mode_fp
  target/m68k: Merge gen_store_fp, gen_store_mode_fp
  target/m68k: Implement packed decimal real loads and stores
  tests/tcg/m68k: Add packed decimal tests
  target/m68k: Make vmstate variables static
  target/m68k: Implement FPIAR

 target/m68k/cpu.h                |   27 +-
 target/m68k/helper.h             |    7 +-
 fpu/softfloat.c                  |    2 +-
 target/m68k/cpu.c                |   38 +-
 target/m68k/fpu_helper.c         |  351 ++-
 target/m68k/gen-floatx80-pow10.c |   33 +
 target/m68k/helper.c             |   18 +-
 target/m68k/translate.c          |  800 +++--
 tests/tcg/m68k/packeddecimal-1.c |   41 +
 tests/tcg/m68k/packeddecimal-2.c |   46 +
 target/m68k/floatx80-pow10.c.inc | 4935 ++++++++++++++++++++++++++++++
 tests/tcg/m68k/Makefile.target   |    4 +-
 12 files changed, 5763 insertions(+), 539 deletions(-)
 create mode 100644 target/m68k/gen-floatx80-pow10.c
 create mode 100644 tests/tcg/m68k/packeddecimal-1.c
 create mode 100644 tests/tcg/m68k/packeddecimal-2.c
 create mode 100644 target/m68k/floatx80-pow10.c.inc