qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 00/28] cputlb: Remove support for MMU_MODE*_SUFFIX


From: Richard Henderson
Subject: [PATCH v2 00/28] cputlb: Remove support for MMU_MODE*_SUFFIX
Date: Mon, 16 Dec 2019 12:11:30 -1000

This is part of a project to raise the limit on NB_MMU_MODES.

One of those is in cpu_ldst.h, in support of MMU_MODE*_SUFFIX.
While this could be extended, it's not the best interface for
such things.  Better is a single interface that allows a variable
mmu_idx.  The best exemplars of that is the usage in target/mips
and target/ppc.

In the process, I tried to clean up the implementation of these
functions for softmmu and user-only.

Aleksander asked about code size changes.  They vary between
a minor size increase (e.g. for qemu-system-alpha, where there
are in fact no uses of the functions, which are now present as
out-of-line functions rather than eliminated inline functions),
to a minor size decrease (e.g. -79k/-1.6% for qemu-system-i386).
See below for details.

Changes for v2:
  * Significantly revised docs/devel/loads-stores.rst.
  * m68k and s390x dropped #defines and use *_mmuidx_ra directly.


r~


Cc: Aleksandar Markovic <address@hidden>
Cc: Aleksandar Rikalo <address@hidden>
Cc: Aurelien Jarno <address@hidden>
Cc: Chris Wulff <address@hidden>
Cc: David Gibson <address@hidden>
Cc: David Hildenbrand <address@hidden>
Cc: Edgar E. Iglesias <address@hidden>
Cc: Eduardo Habkost <address@hidden>
Cc: Guan Xuetao <address@hidden>
Cc: Laurent Vivier <address@hidden>
Cc: Marek Vasut <address@hidden>
Cc: Max Filippov <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Peter Maydell <address@hidden>


Richard Henderson (28):
  target/xtensa: Use probe_access for itlb_hit_test
  cputlb: Use trace_mem_get_info instead of trace_mem_build_info
  trace: Remove trace_mem_build_info_no_se_[bl]e
  cputlb: Move body of cpu_ldst_template.h out of line
  translator: Use cpu_ld*_code instead of open-coding
  cputlb: Rename helper_ret_ld*_cmmu to cpu_ld*_code
  cputlb: Provide cpu_(ld,st}*_mmuidx_ra for user-only
  target/i386: Use cpu_*_mmuidx_ra instead of templates
  target/s390x: Include tcg.h in mem_helper.c
  target/arm: Include tcg.h in sve_helper.c
  accel/tcg: Include tcg.h in tcg-runtime.c
  linux-user: Include tcg.h in syscall.c
  linux-user: Include trace-root.h in syscall-trace.h
  cputlb: Expand cpu_ldst_useronly_template.h in user-exec.c
  target/nios2: Remove MMU_MODE{0,1}_SUFFIX
  target/alpha: Remove MMU_MODE{0,1}_SUFFIX
  target/cris: Remove MMU_MODE{0,1}_SUFFIX
  target/i386: Remove MMU_MODE{0,1,2}_SUFFIX
  target/microblaze: Remove MMU_MODE{0,1,2}_SUFFIX
  target/sh4: Remove MMU_MODE{0,1}_SUFFIX
  target/unicore32: Remove MMU_MODE{0,1}_SUFFIX
  target/xtensa: Remove MMU_MODE{0,1,2,3}_SUFFIX
  target/m68k: Use cpu_*_mmuidx_ra instead of MMU_MODE{0,1}_SUFFIX
  target/mips: Use cpu_*_mmuidx_ra instead of MMU_MODE*_SUFFIX
  target/s390x: Use cpu_*_mmuidx_ra instead of MMU_MODE*_SUFFIX
  target/ppc: Use cpu_*_mmuidx_ra instead of MMU_MODE*_SUFFIX
  cputlb: Remove support for MMU_MODE*_SUFFIX
  cputlb: Expand cpu_ldst_template.h in cputlb.c

 accel/tcg/atomic_template.h               |  67 ++--
 include/exec/cpu_ldst.h                   | 444 +++++++---------------
 include/exec/cpu_ldst_template.h          | 211 ----------
 include/exec/cpu_ldst_useronly_template.h | 159 --------
 include/exec/translator.h                 |  48 +--
 include/user/syscall-trace.h              |   2 +
 target/alpha/cpu.h                        |   2 -
 target/cris/cpu.h                         |   2 -
 target/i386/cpu.h                         |   3 -
 target/m68k/cpu.h                         |   2 -
 target/microblaze/cpu.h                   |   3 -
 target/mips/cpu.h                         |   4 -
 target/nios2/cpu.h                        |   2 -
 target/ppc/cpu.h                          |   2 -
 target/s390x/cpu.h                        |   5 -
 target/sh4/cpu.h                          |   2 -
 target/unicore32/cpu.h                    |   2 -
 target/xtensa/cpu.h                       |   4 -
 tcg/tcg.h                                 |  29 --
 trace/mem-internal.h                      |  17 -
 accel/tcg/cputlb.c                        | 315 +++++++++++----
 accel/tcg/tcg-runtime.c                   |   1 +
 accel/tcg/user-exec.c                     | 236 ++++++++++++
 linux-user/syscall.c                      |   1 +
 target/arm/sve_helper.c                   |   1 +
 target/i386/seg_helper.c                  |  56 +--
 target/m68k/op_helper.c                   |  77 ++--
 target/mips/op_helper.c                   | 182 +++------
 target/ppc/mem_helper.c                   |  11 +-
 target/s390x/mem_helper.c                 |  22 +-
 target/xtensa/mmu_helper.c                |   5 +-
 docs/devel/loads-stores.rst               | 215 ++++++++---
 32 files changed, 966 insertions(+), 1166 deletions(-)
 delete mode 100644 include/exec/cpu_ldst_template.h
 delete mode 100644 include/exec/cpu_ldst_useronly_template.h

-- 
2.20.1


orig    new
text    text
size    size    change  %change binary
------- ------- ------- ------- -----------------
2097672 2101864 4192    0.20%   qemu-aarch64
2102760 2107304 4544    0.22%   qemu-aarch64_be
961464  965960  4496    0.47%   qemu-alpha
1463736 1468200 4464    0.30%   qemu-arm
1470072 1474632 4560    0.31%   qemu-armeb
990584  995224  4640    0.47%   qemu-cris
1009656 1012792 3136    0.31%   qemu-hppa
1295728 1250064 -45664  -3.52%  qemu-i386
1091560 1091928 368     0.03%   qemu-m68k
965720  970232  4512    0.47%   qemu-microblaze
961000  965496  4496    0.47%   qemu-microblazeel
1959864 1957224 -2640   -0.13%  qemu-mips
2001688 2003768 2080    0.10%   qemu-mips64
1996184 1998232 2048    0.10%   qemu-mips64el
1954648 1951928 -2720   -0.14%  qemu-mipsel
2004936 2006888 1952    0.10%   qemu-mipsn32
1999272 1999320 48      0.00%   qemu-mipsn32el
933400  937896  4496    0.48%   qemu-nios2
964024  969176  5152    0.53%   qemu-or1k
1643400 1643272 -128    -0.01%  qemu-ppc
1670168 1669192 -976    -0.06%  qemu-ppc64
1693048 1691784 -1264   -0.07%  qemu-ppc64abi32
1667880 1667080 -800    -0.05%  qemu-ppc64le
973416  978024  4608    0.47%   qemu-riscv32
970664  975112  4448    0.46%   qemu-riscv64
1176952 1159928 -17024  -1.45%  qemu-s390x
970600  974808  4208    0.43%   qemu-sh4
975368  979656  4288    0.44%   qemu-sh4eb
981992  986424  4432    0.45%   qemu-sparc
1020168 1024008 3840    0.38%   qemu-sparc32plus
1022264 1026072 3808    0.37%   qemu-sparc64
926616  930872  4256    0.46%   qemu-tilegx
1300464 1249504 -50960  -3.92%  qemu-x86_64
1236648 1240952 4304    0.35%   qemu-xtensa
1241896 1246360 4464    0.36%   qemu-xtensaeb

orig    new
text    text
size    size    change  %change binary
------- ------- ------- ------- -----------------
6324680 6327256 2576    0.04%   qemu-system-aarch64
3961000 3966200 5200    0.13%   qemu-system-alpha
5580408 5583768 3360    0.06%   qemu-system-arm
2816936 2822072 5136    0.18%   qemu-system-cris
3969576 3971624 2048    0.05%   qemu-system-hppa
4856824 4777432 -79392  -1.63%  qemu-system-i386
2936584 2940984 4400    0.15%   qemu-system-lm32
3010216 3002088 -8128   -0.27%  qemu-system-m68k
2817400 2822264 4864    0.17%   qemu-system-microblaze
2817160 2821912 4752    0.17%   qemu-system-microblazeel
5098264 5101288 3024    0.06%   qemu-system-mips
5205096 5206408 1312    0.03%   qemu-system-mips64
5222424 5223704 1280    0.02%   qemu-system-mips64el
5094216 5097048 2832    0.06%   qemu-system-mipsel
2729320 2733448 4128    0.15%   qemu-system-moxie
2750200 2755048 4848    0.18%   qemu-system-nios2
2777656 2782840 5184    0.19%   qemu-system-or1k
5020408 5018312 -2096   -0.04%  qemu-system-ppc
5401848 5396936 -4912   -0.09%  qemu-system-ppc64
4029464 4034520 5056    0.13%   qemu-system-riscv32
4030632 4035320 4688    0.12%   qemu-system-riscv64
3576984 3523992 -52992  -1.48%  qemu-system-s390x
3952872 3958376 5504    0.14%   qemu-system-sh4
3957032 3962680 5648    0.14%   qemu-system-sh4eb
3003368 3009048 5680    0.19%   qemu-system-sparc
4013240 4018040 4800    0.12%   qemu-system-sparc64
2936472 2923080 -13392  -0.46%  qemu-system-tricore
2824456 2829560 5104    0.18%   qemu-system-unicore32
4886520 4816088 -70432  -1.44%  qemu-system-x86_64
4160168 4165400 5232    0.13%   qemu-system-xtensa
4164232 4169528 5296    0.13%   qemu-system-xtensaeb




reply via email to

[Prev in Thread] Current Thread [Next in Thread]