From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, rth@twiddle.net
Subject: [Qemu-devel] [RFC PATCH 00/11] Cleanup load/store functions in headers and C files
Date: Thu, 8 May 2014 18:09:40 +0200 [thread overview]
Message-ID: <1399565391-27833-1-git-send-email-pbonzini@redhat.com> (raw)
This series is a prerequisite for improving the SMAP emulation in
qemu-system-x86_64. SMAP is a Broadwell feature and testing it in the
kernel is probably the #1 reason why people are using TCG x86 nowadays.
In order to implement some of the SMAP checks correctly, I need to define
a new set of ld/st functions, similar to ldl_data but with a different
definition of cpu_mmu_index. This series lets me do that painlessly,
by simplifying the set of macros expected by softmmu_header.h. This is
done by patches 2 to 4.
In addition, implementation of the MMU lookups are spread across all C
files. There is no reason for this, it can be done in cputlb.c directly.
This is done by patches 5 to 7.
CPU load/store functions are also split around multiple headers: tcg/tcg.h,
softmmu_header.h, cpu-all.h, exec-all.h. This series consolidates them
all in a single header, cpu_ldst.h, in patches 8 to 11.
The only reason why this is RFC is that it depends on TCG backends
stopping their use of helper_ld*_mmu and using instead the new
"return-address aware" helpers. With this conversion done, helper_ld*_mmu
are not anymore TCG-related and it makes sense to move them to cpu_ldst.h.
The only backends left to convert are S390, with patches on the list,
and MIPS, which should also get done for 2.1.
Paolo
Paolo Bonzini (11):
hw: use ld_p/st_p instead of ld_raw/st_raw
softmmu: start introducing SOFTMMU_CODE_ACCESS in softmmu_header.h
softmmu: move MMUSUFFIX under SOFTMMU_CODE_ACCESS
softmmu: move definition of CPU_MMU_INDEX to inclusion site, drop ACCESS_TYPE
softmmu: move ALIGNED_ONLY to cpu.h
softmmu: commonize helper definitions
softmmu: move softmmu_template.h out of include/
softmmu: make do_unaligned_access extern
target-arm: move arm_*_code to a separate file
softmmu: introduce cpu_ldst.h
softmmu: move all load/store functions to cpu_ldst.h
bsd-user/qemu.h | 1 +
cputlb.c | 27 +-
hw/9pfs/virtio-9p-device.c | 2 +-
hw/arm/nseries.c | 236 ++++++------
hw/block/virtio-blk.c | 12 +-
hw/display/omap_lcd_template.h | 10 +-
hw/display/sm501_template.h | 6 +-
hw/display/vga_template.h | 4 +-
hw/mips/mips_fulong2e.c | 28 +-
hw/mips/mips_malta.c | 176 ++++-----
hw/scsi/vhost-scsi.c | 4 +-
hw/scsi/virtio-scsi.c | 28 +-
include/exec/cpu-all.h | 119 ------
include/exec/cpu_ldst.h | 400 +++++++++++++++++++++
.../exec/{softmmu_header.h => cpu_ldst_template.h} | 32 +-
include/exec/exec-all.h | 23 --
include/exec/softmmu_exec.h | 216 -----------
linux-user/qemu.h | 1 +
monitor.c | 1 +
.../exec/softmmu_template.h => softmmu_template.h | 2 +
target-alpha/cpu.h | 4 +
target-alpha/mem_helper.c | 23 +-
target-alpha/translate.c | 1 +
target-arm/arm_ldst.h | 48 +++
target-arm/cpu.h | 22 --
target-arm/helper.c | 1 +
target-arm/op_helper.c | 17 +-
target-arm/translate-a64.c | 1 +
target-arm/translate.c | 1 +
target-cris/helper.c | 1 +
target-cris/op_helper.c | 17 +-
target-cris/translate.c | 1 +
target-i386/fpu_helper.c | 5 +-
target-i386/mem_helper.c | 23 +-
target-i386/misc_helper.c | 5 +-
target-i386/seg_helper.c | 5 +-
target-i386/svm_helper.c | 5 +-
target-i386/translate.c | 1 +
target-lm32/op_helper.c | 12 +-
target-lm32/translate.c | 1 +
target-m68k/op_helper.c | 17 +-
target-m68k/translate.c | 1 +
target-microblaze/op_helper.c | 12 +-
target-microblaze/translate.c | 1 +
target-mips/cpu.h | 4 +
target-mips/op_helper.c | 28 +-
target-mips/translate.c | 1 +
target-moxie/helper.c | 16 +-
target-moxie/translate.c | 1 +
target-openrisc/mmu_helper.c | 15 +-
target-openrisc/translate.c | 1 +
target-ppc/excp_helper.c | 1 +
target-ppc/mem_helper.c | 5 +-
target-ppc/mmu_helper.c | 17 +-
target-ppc/translate.c | 1 +
target-s390x/fpu_helper.c | 5 +-
target-s390x/helper.c | 1 +
target-s390x/mem_helper.c | 16 +-
target-s390x/misc_helper.c | 2 +-
target-s390x/translate.c | 1 +
target-sh4/op_helper.c | 16 +-
target-sh4/translate.c | 1 +
target-sparc/cpu.h | 6 +
target-sparc/ldst_helper.c | 28 +-
target-sparc/translate.c | 1 +
target-unicore32/op_helper.c | 17 +-
target-unicore32/translate.c | 1 +
target-xtensa/cpu.h | 4 +
target-xtensa/op_helper.c | 23 +-
target-xtensa/translate.c | 1 +
tcg/tcg.h | 13 -
tci.c | 1 +
user-exec.c | 1 +
73 files changed, 806 insertions(+), 975 deletions(-)
create mode 100644 include/exec/cpu_ldst.h
rename include/exec/{softmmu_header.h => cpu_ldst_template.h} (89%)
delete mode 100644 include/exec/softmmu_exec.h
rename include/exec/softmmu_template.h => softmmu_template.h (99%)
create mode 100644 target-arm/arm_ldst.h
--
1.8.3.1
next reply other threads:[~2014-05-08 16:10 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-08 16:09 Paolo Bonzini [this message]
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 01/11] hw: use ld_p/st_p instead of ld_raw/st_raw Paolo Bonzini
2014-05-09 18:18 ` Peter Maydell
2014-05-09 19:03 ` Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 02/11] softmmu: start introducing SOFTMMU_CODE_ACCESS in softmmu_header.h Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 03/11] softmmu: move MMUSUFFIX under SOFTMMU_CODE_ACCESS Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 04/11] softmmu: move definition of CPU_MMU_INDEX to inclusion site, drop ACCESS_TYPE Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 05/11] softmmu: move ALIGNED_ONLY to cpu.h Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 06/11] softmmu: commonize helper definitions Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 07/11] softmmu: move softmmu_template.h out of include/ Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 08/11] softmmu: make do_unaligned_access extern Paolo Bonzini
2014-05-13 6:53 ` Andreas Färber
2014-05-13 7:08 ` Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 09/11] target-arm: move arm_*_code to a separate file Paolo Bonzini
2014-05-13 7:03 ` Andreas Färber
2014-05-13 9:05 ` Peter Maydell
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 10/11] softmmu: introduce cpu_ldst.h Paolo Bonzini
2014-05-08 16:09 ` [Qemu-devel] [RFC PATCH 11/11] softmmu: move all load/store functions to cpu_ldst.h Paolo Bonzini
2014-05-12 17:36 ` Richard Henderson
2014-05-13 7:13 ` Andreas Färber
2014-05-13 7:32 ` Paolo Bonzini
2014-05-12 17:37 ` [Qemu-devel] [RFC PATCH 00/11] Cleanup load/store functions in headers and C files Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1399565391-27833-1-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).