[PULL 00/33] Endianness cleanup patches for 2024-10-15

Philippe Mathieu-Daudé posted 33 patches 1 week ago
include/exec/memop.h                      |   6 -
include/exec/tswap.h                      |   2 +-
include/gdbstub/helpers.h                 |   4 +
include/hw/mips/cps.h                     |   1 +
include/qemu/bswap.h                      |   2 +
target/mips/cpu.h                         |   7 +-
target/mips/internal.h                    |  10 ++
target/mips/tcg/translate.h               |  13 +-
hw/i386/multiboot.c                       |  39 +++--
hw/i386/x86-common.c                      |  26 +--
hw/mips/cps.c                             |   4 +
hw/mips/fuloong2e.c                       |   2 +-
hw/mips/jazz.c                            |   3 +-
hw/mips/loongson3_virt.c                  |   2 +-
hw/mips/malta.c                           |   5 +-
hw/mips/mipssim.c                         |   3 +-
hw/xtensa/xtfpga.c                        |  12 +-
linux-user/i386/signal.c                  |   4 +-
target/alpha/gdbstub.c                    |   2 +-
target/avr/gdbstub.c                      |   4 +-
target/hexagon/gdbstub.c                  |  10 +-
target/loongarch/gdbstub.c                |   8 +-
target/mips/cpu.c                         |  17 +-
target/mips/tcg/ldst_helper.c             |  15 +-
target/mips/tcg/msa_helper.c              |   8 -
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/ppc/translate.c                    |  13 +-
target/tricore/gdbstub.c                  |   2 +-
target/tricore/translate.c                |   3 +-
target/mips/tcg/micromips_translate.c.inc |  34 ++--
target/mips/tcg/mips16e_translate.c.inc   | 118 +++++++------
target/mips/tcg/nanomips_translate.c.inc  | 162 ++++++++----------
35 files changed, 370 insertions(+), 392 deletions(-)
[PULL 00/33] Endianness cleanup patches for 2024-10-15
Posted by Philippe Mathieu-Daudé 1 week ago
The following changes since commit c155d13167c6ace099e351e28125f9eb3694ae27:

  Merge tag 'chr-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2024-10-15 10:30:43 +0100)

are available in the Git repository at:

  https://github.com/philmd/qemu.git tags/single-binary-20241015

for you to fetch changes up to 3e8f019be77d1b648bca0af0121da3bb37766509:

  hw/mips: Have mips_cpu_create_with_clock() take an endianness argument (2024-10-15 12:21:06 -0300)

One checkpatch warning due to wide comment:

  WARNING: line over 80 characters
  #108: FILE: hw/i386/multiboot.c:380:
  +    stl_le_p(bootinfo + MBI_BOOT_DEVICE, 0x8000ffff); /* XXX: use the -boot switch? */

----------------------------------------------------------------
Remove some target-specific endianness knowledge from target/.

For MIPS, propagate endianness at the board level, using QOM property.
----------------------------------------------------------------

Philippe Mathieu-Daudé (33):
  qemu/bswap: Undefine CPU_CONVERT() once done
  exec/tswap: Massage target_needs_bswap() definition
  exec/memop: Remove unused memop_big_endian() helper
  target/hexagon: Replace ldtul_p() -> ldl_p()
  target/alpha: Replace ldtul_p() -> ldq_p()
  gdbstub/helpers: Introduce ldtul_$endian_p() helpers
  target/alpha: Use explicit little-endian LD/ST API
  target/hexagon: Use explicit little-endian LD/ST API
  hw/i386: Use explicit little-endian LD/ST API
  target/avr: Use explicit little-endian LD/ST API
  linux-user/i386: Use explicit little-endian LD/ST API
  target/loongarch: Use explicit little-endian LD/ST API
  target/tricore: Use explicit little-endian LD/ST API
  target/tricore: Use tcg_constant_tl() instead of tcg_gen_movi_tl()
  target/ppc: Use tcg_constant_tl() instead of tcg_gen_movi_tl()
  hw/xtensa/xtfpga: Remove TARGET_BIG_ENDIAN #ifdef'ry
  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: Remove unused MEMOP_IDX() macro
  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/exec/memop.h                      |   6 -
 include/exec/tswap.h                      |   2 +-
 include/gdbstub/helpers.h                 |   4 +
 include/hw/mips/cps.h                     |   1 +
 include/qemu/bswap.h                      |   2 +
 target/mips/cpu.h                         |   7 +-
 target/mips/internal.h                    |  10 ++
 target/mips/tcg/translate.h               |  13 +-
 hw/i386/multiboot.c                       |  39 +++--
 hw/i386/x86-common.c                      |  26 +--
 hw/mips/cps.c                             |   4 +
 hw/mips/fuloong2e.c                       |   2 +-
 hw/mips/jazz.c                            |   3 +-
 hw/mips/loongson3_virt.c                  |   2 +-
 hw/mips/malta.c                           |   5 +-
 hw/mips/mipssim.c                         |   3 +-
 hw/xtensa/xtfpga.c                        |  12 +-
 linux-user/i386/signal.c                  |   4 +-
 target/alpha/gdbstub.c                    |   2 +-
 target/avr/gdbstub.c                      |   4 +-
 target/hexagon/gdbstub.c                  |  10 +-
 target/loongarch/gdbstub.c                |   8 +-
 target/mips/cpu.c                         |  17 +-
 target/mips/tcg/ldst_helper.c             |  15 +-
 target/mips/tcg/msa_helper.c              |   8 -
 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/ppc/translate.c                    |  13 +-
 target/tricore/gdbstub.c                  |   2 +-
 target/tricore/translate.c                |   3 +-
 target/mips/tcg/micromips_translate.c.inc |  34 ++--
 target/mips/tcg/mips16e_translate.c.inc   | 118 +++++++------
 target/mips/tcg/nanomips_translate.c.inc  | 162 ++++++++----------
 35 files changed, 370 insertions(+), 392 deletions(-)

-- 
2.45.2


Re: [PULL 00/33] Endianness cleanup patches for 2024-10-15
Posted by Peter Maydell 5 days, 9 hours ago
On Tue, 15 Oct 2024 at 16:47, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
>
> The following changes since commit c155d13167c6ace099e351e28125f9eb3694ae27:
>
>   Merge tag 'chr-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2024-10-15 10:30:43 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/philmd/qemu.git tags/single-binary-20241015
>
> for you to fetch changes up to 3e8f019be77d1b648bca0af0121da3bb37766509:
>
>   hw/mips: Have mips_cpu_create_with_clock() take an endianness argument (2024-10-15 12:21:06 -0300)
>
> One checkpatch warning due to wide comment:
>
>   WARNING: line over 80 characters
>   #108: FILE: hw/i386/multiboot.c:380:
>   +    stl_le_p(bootinfo + MBI_BOOT_DEVICE, 0x8000ffff); /* XXX: use the -boot switch? */
>
> ----------------------------------------------------------------
> Remove some target-specific endianness knowledge from target/.
>
> For MIPS, propagate endianness at the board level, using QOM property.
> ----------------------------------------------------------------
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/9.2
for any user-visible changes.

-- PMM