[PATCH v2 00/16] target/mips: Remove target-specific endianness knowledge

Philippe Mathieu-Daudé posted 16 patches 1 month, 1 week ago
include/hw/mips/cps.h                     |   1 +
target/mips/cpu.h                         |   7 +-
target/mips/internal.h                    |  10 ++
target/mips/tcg/translate.h               |  13 +-
hw/mips/cps.c                             |   4 +
hw/mips/fuloong2e.c                       |   2 +-
hw/mips/jazz.c                            |   2 +-
hw/mips/loongson3_virt.c                  |   2 +-
hw/mips/malta.c                           |   5 +-
hw/mips/mipssim.c                         |   2 +-
target/mips/cpu.c                         |  17 +-
target/mips/tcg/ldst_helper.c             |  15 +-
target/mips/tcg/msa_helper.c              |   2 +-
target/mips/tcg/mxu_translate.c           |  18 +-
target/mips/tcg/sysemu/tlb_helper.c       |   2 +-
target/mips/tcg/translate.c               | 193 ++++++++++------------
target/mips/tcg/tx79_translate.c          |   8 +-
target/mips/tcg/micromips_translate.c.inc |  34 ++--
target/mips/tcg/mips16e_translate.c.inc   | 118 +++++++------
target/mips/tcg/nanomips_translate.c.inc  | 150 +++++++----------
20 files changed, 293 insertions(+), 312 deletions(-)
[PATCH v2 00/16] target/mips: Remove target-specific endianness knowledge
Posted by Philippe Mathieu-Daudé 1 month, 1 week ago
Since v1:
- Addressed rth review comment (adding new patches)

Get vCPU endianness from CP0::BE bit.
Propagate endianness at the board level, using QOM property.
Remove target-specific endianness knowledge from target/.

Philippe Mathieu-Daudé (16):
  target/mips: Declare mips_env_is_bigendian() in 'internal.h'
  target/mips: Rename cpu_is_bigendian() -> disas_is_bigendian()
  target/mips: Introduce mo_endian_env() helper
  target/mips: Replace MO_TE by  mo_endian_env() in get_pte()
  target/mips: Convert mips16e decr_and_load/store() macros to functions
  target/mips: Factor mo_endian_rev() out of MXU code
  target/mips: Explode MO_TExx -> MO_TE | MO_xx
  target/mips: Rename unused sysemu argument of OP_LD_ATOMIC()
  target/mips: Introduce mo_endian() helper
  target/mips: Replace MO_TE by mo_endian()
  target/mips: Have gen_addiupc() expand $pc during translation
  target/mips: Use gen_op_addr_addi() when possible
  target/mips: Use tcg_constant_tl() instead of tcg_gen_movi_tl()
  target/mips: Expose MIPSCPU::is_big_endian property
  hw/mips/cps: Set the vCPU 'cpu-big-endian' property
  hw/mips: Have mips_cpu_create_with_clock() take an endianness argument

 include/hw/mips/cps.h                     |   1 +
 target/mips/cpu.h                         |   7 +-
 target/mips/internal.h                    |  10 ++
 target/mips/tcg/translate.h               |  13 +-
 hw/mips/cps.c                             |   4 +
 hw/mips/fuloong2e.c                       |   2 +-
 hw/mips/jazz.c                            |   2 +-
 hw/mips/loongson3_virt.c                  |   2 +-
 hw/mips/malta.c                           |   5 +-
 hw/mips/mipssim.c                         |   2 +-
 target/mips/cpu.c                         |  17 +-
 target/mips/tcg/ldst_helper.c             |  15 +-
 target/mips/tcg/msa_helper.c              |   2 +-
 target/mips/tcg/mxu_translate.c           |  18 +-
 target/mips/tcg/sysemu/tlb_helper.c       |   2 +-
 target/mips/tcg/translate.c               | 193 ++++++++++------------
 target/mips/tcg/tx79_translate.c          |   8 +-
 target/mips/tcg/micromips_translate.c.inc |  34 ++--
 target/mips/tcg/mips16e_translate.c.inc   | 118 +++++++------
 target/mips/tcg/nanomips_translate.c.inc  | 150 +++++++----------
 20 files changed, 293 insertions(+), 312 deletions(-)

-- 
2.45.2