History log of /openbmc/qemu/target/riscv/ (Results 1 – 25 of 1755)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
3cdd1f4509-Mar-2025 Chao Liu <lc00631@tecorigin.com>

target/riscv: fix handling of nop for vstart >= vl in some vector instruction

Recently, when I was writing a RISCV test, I found that when VL is set to 0, the
instruction should be nop, but when I t

target/riscv: fix handling of nop for vstart >= vl in some vector instruction

Recently, when I was writing a RISCV test, I found that when VL is set to 0, the
instruction should be nop, but when I tested it, I found that QEMU will treat
all elements as tail elements, and in the case of VTA=1, write all elements
to 1.

After troubleshooting, it was found that the vext_vx_rm_1 function was called in
the vext_vx_rm_2, and then the vext_set_elems_1s function was called to process
the tail element, but only VSTART >= vl was checked in the vext_vx_rm_1
function, which caused the tail element to still be processed even if it was
returned in advance.

So I've made the following change:

Put VSTART_CHECK_EARLY_EXIT(env) at the beginning of the vext_vx_rm_2 function,
so that the VSTART register is checked correctly.

Fixes: df4252b2ec ("target/riscv/vector_helpers: do early exit when
vstart >= vl")
Signed-off-by: Chao Liu <lc00631@tecorigin.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <b2649f14915150be4c602d63cd3ea4adf47e9d75.1741573286.git.lc00631@tecorigin.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit 4e9e2478dfd26480bbf50367a67b9be0edafef2b)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

7f5f3e5a09-Mar-2025 Chao Liu <lc00631@tecorigin.com>

target/riscv: refactor VSTART_CHECK_EARLY_EXIT() to accept vl as a parameter

Some vector instructions are special, such as the vlm.v instruction,
where setting its vl actually sets evl = (vl + 7) >>

target/riscv: refactor VSTART_CHECK_EARLY_EXIT() to accept vl as a parameter

Some vector instructions are special, such as the vlm.v instruction,
where setting its vl actually sets evl = (vl + 7) >> 3. To improve
maintainability, we will uniformly use VSTART_CHECK_EARLY_EXIT() to
check for the condition vstart >= vl. This function will also handle
cases involving evl.

Fixes: df4252b2ec ("target/riscv/vector_helpers: do early exit when
vstart >= vl")
Signed-off-by: Chao Liu <lc00631@tecorigin.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <f575979874e323a9e0da7796aa391c7d87e56f88.1741573286.git.lc00631@tecorigin.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit e83845316abcea9024eb5402a6c5eb8b092c79d5)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

803a686406-Mar-2025 Deepak Gupta <debug@rivosinc.com>

target/riscv: fixes a bug against `ssamoswap` behavior in M-mode

Commit f06bfe3dc38c ("target/riscv: implement zicfiss instructions") adds
`ssamoswap` instruction. `ssamoswap` takes the code-point f

target/riscv: fixes a bug against `ssamoswap` behavior in M-mode

Commit f06bfe3dc38c ("target/riscv: implement zicfiss instructions") adds
`ssamoswap` instruction. `ssamoswap` takes the code-point from existing
reserved encoding (and not a zimop like other shadow stack instructions).
If shadow stack is not enabled (via xenvcfg.SSE) and effective priv is
less than M then `ssamoswap` must result in an illegal instruction
exception. However if effective priv is M, then `ssamoswap` results in
store/AMO access fault. See Section "22.2.3. Shadow Stack Memory
Protection" of priv spec.

Fixes: f06bfe3dc38c ("target/riscv: implement zicfiss instructions")

Reported-by: Ved Shanbhogue <ved@rivosinc.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20250306064636.452396-2-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit d2c5759c8dd4c00195d4ebecc7d009e41df6baef)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

68a9013406-Mar-2025 Deepak Gupta <debug@rivosinc.com>

target/riscv: fix access permission checks for CSR_SSP

Commit:8205bc1 ("target/riscv: introduce ssp and enabling controls for
zicfiss") introduced CSR_SSP but it mis-interpreted the spec on access
t

target/riscv: fix access permission checks for CSR_SSP

Commit:8205bc1 ("target/riscv: introduce ssp and enabling controls for
zicfiss") introduced CSR_SSP but it mis-interpreted the spec on access
to CSR_SSP in M-mode. Gated to CSR_SSP is not gated via `xSSE`. But
rather rules clearly specified in section "22.2.1. Shadow Stack Pointer
(ssp) CSR access contr" in the priv spec.

Fixes: 8205bc127a83 ("target/riscv: introduce ssp and enabling controls
for zicfiss". Thanks to Adam Zabrocki for bringing this to attention.

Reported-by: Adam Zabrocki <azabrocki@nvidia.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20250306064636.452396-1-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit 86c78b280607fcff787866a03374047c65037a90)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

426beec921-Jan-2025 Daniel Henrique Barboza <dbarboza@ventanamicro.com>

target/riscv: throw debug exception before page fault

In the RISC-V privileged ISA section 3.1.15 table 15, it is determined
that a debug exception that is triggered from a load/store has a higher
p

target/riscv: throw debug exception before page fault

In the RISC-V privileged ISA section 3.1.15 table 15, it is determined
that a debug exception that is triggered from a load/store has a higher
priority than a possible fault that this access might trigger.

This is not the case ATM as shown in [1]. Adding a breakpoint in an
address that deliberately will fault is causing a load page fault
instead of a debug exception. The reason is that we're throwing in the
page fault as soon as the fault occurs (end of riscv_cpu_tlb_fill(),
raise_mmu_exception()), not allowing the installed watchpoints to
trigger.

Call cpu_check_watchpoint() in the page fault path to search and execute
any watchpoints that might exist for the address, never returning back
to the fault path. If no watchpoints are found cpu_check_watchpoint()
will return and we'll fall-through the regular path to
raise_mmu_exception().

[1] https://gitlab.com/qemu-project/qemu/-/issues/2627

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2627
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20250121170626.1992570-3-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit c86edc547692d812d1dcc04220c38310be2c00c3)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

1408266d21-Jan-2025 Daniel Henrique Barboza <dbarboza@ventanamicro.com>

target/riscv/debug.c: use wp size = 4 for 32-bit CPUs

The mcontrol select bit (19) is always zero, meaning our triggers will
always match virtual addresses. In this condition, if the user does not
s

target/riscv/debug.c: use wp size = 4 for 32-bit CPUs

The mcontrol select bit (19) is always zero, meaning our triggers will
always match virtual addresses. In this condition, if the user does not
specify a size for the trigger, the access size defaults to XLEN.

At this moment we're using def_size = 8 regardless of CPU XLEN. Use
def_size = 4 in case we're running 32 bits.

Fixes: 95799e36c1 ("target/riscv: Add initial support for the Sdtrig extension")
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20250121170626.1992570-2-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit 3fba76e61caa46329afc399b3ecaaba70c8b0a4e)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

1fc0a58a24-Jan-2025 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Fix incorrect vlen comparison in prop_vlen_set

In prop_vlen_set function, there is an incorrect comparison between
vlen(bit) and vlenb(byte).
This will cause unexpected error when

target/riscv: rvv: Fix incorrect vlen comparison in prop_vlen_set

In prop_vlen_set function, there is an incorrect comparison between
vlen(bit) and vlenb(byte).
This will cause unexpected error when user applies the `vlen=1024` cpu
option with a vendor predefined cpu type that the default vlen is
1024(vlenb=128).

Fixes: 4f6d036ccc ("target/riscv/cpu.c: remove cpu->cfg.vlen")
Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20250124090539.2506448-1-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit bf3adf93f16730ca5aaa6c26cf969e64eeff6e7b)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

39408f6f24-Jan-2025 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Fix unexpected behavior of vector reduction instructions when vl is 0

According to the Vector Reduction Operations section in the RISC-V "V"
Vector Extension spec,
"If vl=0, no op

target/riscv: rvv: Fix unexpected behavior of vector reduction instructions when vl is 0

According to the Vector Reduction Operations section in the RISC-V "V"
Vector Extension spec,
"If vl=0, no operation is performed and the destination register is not
updated."

The vd should be updated when vl is larger than 0.

Fixes: fe5c9ab1fc ("target/riscv: vector single-width integer reduction instructions")
Fixes: f714361ed7 ("target/riscv: rvv-1.0: implement vstart CSR")
Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20250124101452.2519171-1-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit ffd455963f230c7dc04965609d6675da687a5a78)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...


/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/backends/cryptodev-vhost-user.c
/openbmc/qemu/backends/cryptodev-vhost.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/chardev/char.c
/openbmc/qemu/configs/targets/i386-softmmu.mak
/openbmc/qemu/configs/targets/x86_64-softmmu.mak
/openbmc/qemu/crypto/pbkdf.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/gdbstub/user-target.c
/openbmc/qemu/hw/9pfs/9p-util.h
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/display/vga.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/amd_iommu.h
/openbmc/qemu/hw/i386/microvm.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/intc/arm_gicv3_cpuif.c
/openbmc/qemu/hw/intc/arm_gicv3_its.c
/openbmc/qemu/hw/intc/riscv_aplic.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/net/smc91c111.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/pci/msix.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/usb/Kconfig
/openbmc/qemu/hw/usb/canokey.c
/openbmc/qemu/hw/usb/canokey.h
/openbmc/qemu/hw/usb/hcd-xhci-pci.c
/openbmc/qemu/hw/usb/meson.build
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/virtio/vhost-user-snd.c
/openbmc/qemu/hw/virtio/virtio-balloon.c
/openbmc/qemu/hw/virtio/virtio-nsm.c
/openbmc/qemu/hw/virtio/virtio-qmp.c
/openbmc/qemu/include/sysemu/kvm.h
/openbmc/qemu/include/tcg/tcg-temp-internal.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/multifd-nocomp.c
/openbmc/qemu/migration/multifd-qatzip.c
/openbmc/qemu/migration/multifd-qpl.c
/openbmc/qemu/migration/multifd-uadk.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/vmstate-types.c
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/net/dump.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/pc-bios/descriptors/60-edk2-riscv64.json
/openbmc/qemu/pc-bios/descriptors/meson.build
/openbmc/qemu/roms/Makefile
/openbmc/qemu/scripts/analyze-migration.py
/openbmc/qemu/scripts/make-release
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/system/physmem.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/loongarch/gdbstub.c
/openbmc/qemu/target/loongarch/tcg/insn_trans/trans_vec.c.inc
vector_helper.c
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/sparc/gdbstub.c
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.ipmikcs
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.roothp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.applesmc
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmismbus
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ivrs
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.multi-bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.pvpanic-isa
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.viot
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.xapic
/openbmc/qemu/tests/functional/test_rx_gdbsim.py
/openbmc/qemu/tests/qtest/boot-serial-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/ufs-test.c
/openbmc/qemu/tests/qtest/virtio-balloon-test.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/sdl2.c
5311599c28-Nov-2024 Peter Maydell <peter.maydell@linaro.org>

target/riscv: Avoid bad shift in riscv_cpu_do_interrupt()

In riscv_cpu_do_interrupt() we use the 'cause' value we got out of
cs->exception as a shift value. However this value can be larger
than 31

target/riscv: Avoid bad shift in riscv_cpu_do_interrupt()

In riscv_cpu_do_interrupt() we use the 'cause' value we got out of
cs->exception as a shift value. However this value can be larger
than 31, which means that "1 << cause" is undefined behaviour,
because we do the shift on an 'int' type.

This causes the undefined behaviour sanitizer to complain
on one of the check-tcg tests:

$ UBSAN_OPTIONS=print_stacktrace=1:abort_on_error=1:halt_on_error=1 ./build/clang/qemu-system-riscv64 -M virt -semihosting -display none -device loader,file=build/clang/tests/tcg/riscv64-softmmu/issue1060
../../target/riscv/cpu_helper.c:1805:38: runtime error: shift exponent 63 is too large for 32-bit type 'int'
#0 0x55f2dc026703 in riscv_cpu_do_interrupt /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/clang/../../target/riscv/cpu_helper.c:1805:38
#1 0x55f2dc3d170e in cpu_handle_exception /mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/clang/../../accel/tcg/cpu-exec.c:752:9

In this case cause is RISCV_EXCP_SEMIHOST, which is 0x3f.

Use 1ULL instead to ensure that the shift is in range.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Fixes: 1697837ed9 ("target/riscv: Add M-mode virtual interrupt and IRQ filtering support.")
Fixes: 40336d5b1d ("target/riscv: Add HS-mode virtual interrupt and IRQ filtering support.")
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241128103831.3452572-1-peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>

show more ...


/openbmc/qemu/.gitattributes
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/check-dco.py
/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-14.vars
/openbmc/qemu/.gitlab-ci.d/crossbuild-template.yml
/openbmc/qemu/.mailmap
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/tcg/user-exec.c
/openbmc/qemu/block/parallels.c
/openbmc/qemu/block/ssh.c
/openbmc/qemu/chardev/char-mux.c
/openbmc/qemu/configure
/openbmc/qemu/cpu-common.c
/openbmc/qemu/docs/about/build-platforms.rst
/openbmc/qemu/docs/devel/submitting-a-patch.rst
/openbmc/qemu/docs/devel/testing/functional.rst
/openbmc/qemu/docs/system/arm/aspeed.rst
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/system/arm/fby35.rst
/openbmc/qemu/docs/system/bootindex.rst
/openbmc/qemu/docs/system/s390x/bootdevices.rst
/openbmc/qemu/fpu/softfloat-specialize.c.inc
/openbmc/qemu/hw/9pfs/9p.c
/openbmc/qemu/hw/9pfs/9p.h
/openbmc/qemu/hw/acpi/aml-build.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/audio/hda-codec.c
/openbmc/qemu/hw/core/eif.c
/openbmc/qemu/hw/core/machine-smp.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/display/virtio-gpu-virgl.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/intc/loongarch_extioi.c
/openbmc/qemu/hw/intc/openpic.c
/openbmc/qemu/hw/m68k/next-kbd.c
/openbmc/qemu/hw/misc/nrf51_rng.c
/openbmc/qemu/hw/net/rocker/rocker_of_dpa.c
/openbmc/qemu/hw/net/vhost_net.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/openrisc/cputimer.c
/openbmc/qemu/hw/openrisc/openrisc_sim.c
/openbmc/qemu/hw/pci-host/mv64361.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/pnv_core.c
/openbmc/qemu/hw/ppc/pnv_nest_pervasive.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/s390x/ccw-device.c
/openbmc/qemu/hw/s390x/ccw-device.h
/openbmc/qemu/hw/s390x/ipl.c
/openbmc/qemu/hw/s390x/virtio-ccw-blk.c
/openbmc/qemu/hw/s390x/virtio-ccw-net.c
/openbmc/qemu/hw/scsi/megasas.c
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/timer/exynos4210_mct.c
/openbmc/qemu/hw/usb/dev-hub.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/container-base.c
/openbmc/qemu/hw/vfio/igd.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/watchdog/cmsdk-apb-watchdog.c
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/intc/arm_gicv3_common.h
/openbmc/qemu/include/hw/misc/mos6522.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/qdev-properties-system.h
/openbmc/qemu/include/hw/qdev-properties.h
/openbmc/qemu/include/hw/usb/dwc2-regs.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/hw/virtio/virtio-net.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/net/checksum.h
/openbmc/qemu/include/net/eth.h
/openbmc/qemu/include/qemu/bitmap.h
/openbmc/qemu/include/qemu/bitops.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/linux-user/aarch64/Makefile.vdso
/openbmc/qemu/linux-user/aarch64/vdso-be.so
/openbmc/qemu/linux-user/aarch64/vdso-le.so
/openbmc/qemu/linux-user/arm/Makefile.vdso
/openbmc/qemu/linux-user/arm/meson.build
/openbmc/qemu/linux-user/arm/vdso-be32.so
/openbmc/qemu/linux-user/arm/vdso-be8.so
/openbmc/qemu/linux-user/arm/vdso-le.so
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/loongarch64/Makefile.vdso
/openbmc/qemu/linux-user/loongarch64/vdso.so
/openbmc/qemu/linux-user/ppc/Makefile.vdso
/openbmc/qemu/linux-user/ppc/vdso-32.so
/openbmc/qemu/linux-user/ppc/vdso-64.so
/openbmc/qemu/linux-user/ppc/vdso-64le.so
/openbmc/qemu/linux-user/qemu.h
/openbmc/qemu/linux-user/strace.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/fd.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/net/checksum.c
/openbmc/qemu/pc-bios/s390-ccw.img
/openbmc/qemu/pc-bios/s390-ccw/main.c
/openbmc/qemu/pc-bios/s390-ccw/virtio-net.c
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/python/scripts/mkvenv.py
/openbmc/qemu/python/setup.cfg
/openbmc/qemu/qapi/qdev.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qga/commands-linux.c
/openbmc/qemu/roms/edk2
/openbmc/qemu/rust/Cargo.lock
/openbmc/qemu/rust/Cargo.toml
/openbmc/qemu/rust/hw/char/Kconfig
/openbmc/qemu/rust/hw/char/pl011/Cargo.toml
/openbmc/qemu/rust/hw/char/pl011/src/device.rs
/openbmc/qemu/rust/hw/char/pl011/src/device_class.rs
/openbmc/qemu/rust/hw/char/pl011/src/lib.rs
/openbmc/qemu/rust/hw/char/pl011/src/memory_ops.rs
/openbmc/qemu/rust/qemu-api-macros/Cargo.toml
/openbmc/qemu/rust/qemu-api-macros/meson.build
/openbmc/qemu/rust/qemu-api-macros/src/lib.rs
/openbmc/qemu/rust/qemu-api/Cargo.toml
/openbmc/qemu/rust/qemu-api/build.rs
/openbmc/qemu/rust/qemu-api/meson.build
/openbmc/qemu/rust/qemu-api/src/c_str.rs
/openbmc/qemu/rust/qemu-api/src/definitions.rs
/openbmc/qemu/rust/qemu-api/src/device_class.rs
/openbmc/qemu/rust/qemu-api/src/lib.rs
/openbmc/qemu/rust/qemu-api/src/offset_of.rs
/openbmc/qemu/rust/qemu-api/src/vmstate.rs
/openbmc/qemu/rust/qemu-api/src/zeroable.rs
/openbmc/qemu/rust/qemu-api/tests/tests.rs
/openbmc/qemu/rust/wrapper.h
/openbmc/qemu/scripts/checkpatch.pl
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/scripts/qemu-plugin-symbols.py
/openbmc/qemu/subprojects/bilge-impl-0.2-rs.wrap
/openbmc/qemu/subprojects/packagefiles/arbitrary-int-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/bilge-0.2-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/bilge-impl-0.2-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/bilge-impl-1.63.0.patch
/openbmc/qemu/subprojects/packagefiles/either-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/itertools-0.11-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/proc-macro-error-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/proc-macro-error-attr-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/proc-macro2-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/quote-1-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/syn-2-rs/meson.build
/openbmc/qemu/subprojects/packagefiles/unicode-ident-1-rs/meson.build
/openbmc/qemu/system/dma-helpers.c
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/system/trace-events
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/hvf/trace.h
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/cpu32.c
/openbmc/qemu/target/arm/tcg/sve_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/i386/hvf/x86_cpuid.c
/openbmc/qemu/target/i386/hvf/x86_emu.c
/openbmc/qemu/target/i386/hvf/x86_mmu.c
/openbmc/qemu/target/i386/hvf/x86_task.c
/openbmc/qemu/target/i386/kvm/hyperv-stub.c
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/i386/tcg/sysemu/excp_helper.c
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/excp_helper.c
cpu_helper.c
/openbmc/qemu/target/s390x/tcg/fpu_helper.c
/openbmc/qemu/target/s390x/tcg/vec_fpu_helper.c
/openbmc/qemu/tcg/tcg-op-gvec.c
/openbmc/qemu/tests/avocado/hotplug_blk.py
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbrroot
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.ipmikcs
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.roothp
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.acpihmat-generic-x
/openbmc/qemu/tests/data/acpi/x86/q35/CEDT.acpihmat-generic-x
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-generic-x
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.applesmc
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmismbus
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ivrs
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.multi-bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.noacpihp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.pvpanic-isa
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.viot
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.xapic
/openbmc/qemu/tests/data/acpi/x86/q35/HMAT.acpihmat-generic-x
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.acpihmat-generic-x
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2204.docker
/openbmc/qemu/tests/functional/meson.build
/openbmc/qemu/tests/functional/qemu_test/cmd.py
/openbmc/qemu/tests/functional/qemu_test/testcase.py
/openbmc/qemu/tests/functional/qemu_test/tuxruntest.py
/openbmc/qemu/tests/functional/test_aarch64_aspeed.py
/openbmc/qemu/tests/functional/test_aarch64_sbsaref.py
/openbmc/qemu/tests/functional/test_aarch64_sbsaref_alpine.py
/openbmc/qemu/tests/functional/test_aarch64_sbsaref_freebsd.py
/openbmc/qemu/tests/functional/test_aarch64_tuxrun.py
/openbmc/qemu/tests/functional/test_acpi_bits.py
/openbmc/qemu/tests/functional/test_arm_aspeed.py
/openbmc/qemu/tests/functional/test_arm_bpim2u.py
/openbmc/qemu/tests/functional/test_arm_orangepi.py
/openbmc/qemu/tests/functional/test_arm_sx1.py
/openbmc/qemu/tests/functional/test_loongarch64_virt.py
/openbmc/qemu/tests/functional/test_m68k_nextcube.py
/openbmc/qemu/tests/functional/test_mips64el_malta.py
/openbmc/qemu/tests/functional/test_ppc64_hv.py
/openbmc/qemu/tests/functional/test_ppc_40p.py
/openbmc/qemu/tests/functional/test_riscv64_tuxrun.py
/openbmc/qemu/tests/functional/test_riscv_opensbi.py
/openbmc/qemu/tests/functional/test_sh4_tuxrun.py
/openbmc/qemu/tests/functional/test_virtio_gpu.py
/openbmc/qemu/tests/functional/test_virtio_version.py
/openbmc/qemu/tests/guest-debug/test_gdbstub.py
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/mappings.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/qemu-iotests/iotests.py
/openbmc/qemu/tests/qemu-iotests/pylintrc
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/cmsdk-apb-watchdog-test.c
/openbmc/qemu/tests/qtest/libqos/virtio-9p-client.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-helpers.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/virtio-9p-test.c
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/gdbstub/interrupt.py
/openbmc/qemu/tests/tcg/multiarch/gdbstub/prot-none.py
/openbmc/qemu/tests/tcg/multiarch/gdbstub/test-proc-mappings.py
/openbmc/qemu/tests/tcg/multiarch/sigreturn-sigmask.c
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/float.h
/openbmc/qemu/tests/tcg/s390x/fma.c
/openbmc/qemu/tests/tcg/s390x/vfminmax.c
/openbmc/qemu/tests/vm/generated/freebsd.json
/openbmc/qemu/trace-events
/openbmc/qemu/trace/control-target.c
/openbmc/qemu/trace/control.c
/openbmc/qemu/ui/cocoa.m
/openbmc/qemu/ui/input-legacy.c
13d4385024-Sep-2024 Quan Zhou <zhouquan@iscas.ac.cn>

target/riscv/kvm: Update kvm exts to Linux v6.11

Add support for a few Zc* extensions, Zimop, Zcmop and Zawrs.

Signed-off-by: Quan Zhou <zhouquan@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@vent

target/riscv/kvm: Update kvm exts to Linux v6.11

Add support for a few Zc* extensions, Zimop, Zcmop and Zawrs.

Signed-off-by: Quan Zhou <zhouquan@iscas.ac.cn>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Jim Shu <jim.shu@sifive.com>
Message-ID: <ada40759a79c0728652ace59579aa843cb7bf53f.1727164986.git.zhouquan@iscas.ac.cn>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

f8ee6f5318-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: Inline unit-stride ld/st and corresponding functions for performance

In the vector unit-stride load/store helper functions. the vext_ldst_us
& vext_ldst_whole functions corresponding m

target/riscv: Inline unit-stride ld/st and corresponding functions for performance

In the vector unit-stride load/store helper functions. the vext_ldst_us
& vext_ldst_whole functions corresponding most of the execution time.
Inline the functions can avoid the function call overhead to improve the
helper function performance.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-8-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

e329887818-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Provide group continuous ld/st flow for unit-stride ld/st instructions

The vector unmasked unit-stride and whole register load/store
instructions will load/store continuous memory

target/riscv: rvv: Provide group continuous ld/st flow for unit-stride ld/st instructions

The vector unmasked unit-stride and whole register load/store
instructions will load/store continuous memory. If the endian of both
the host and guest architecture are the same, then we can group the
element load/store to load/store more data at a time.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-7-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

f000892618-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Provide a fast path using direct access to host ram for unit-stride load-only-first load instructions

The unmasked unit-stride fault-only-first load instructions are similar
to th

target/riscv: rvv: Provide a fast path using direct access to host ram for unit-stride load-only-first load instructions

The unmasked unit-stride fault-only-first load instructions are similar
to the unmasked unit-stride load/store instructions that is suitable to
be optimized by using a direct access to host ram fast path.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-6-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

3333000f18-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Provide a fast path using direct access to host ram for unit-stride whole register load/store

The vector unit-stride whole register load/store instructions are
similar to unmasked

target/riscv: rvv: Provide a fast path using direct access to host ram for unit-stride whole register load/store

The vector unit-stride whole register load/store instructions are
similar to unmasked unit-stride load/store instructions that is suitable
to be optimized by using a direct access to host ram fast path.

Because the vector whole register load/store instructions do not need to
handle the tail agnostic, so remove the vstart early exit checking.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-5-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

338aa15d18-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Provide a fast path using direct access to host ram for unmasked unit-stride load/store

This commit references the sve_ldN_r/sve_stN_r helper functions in ARM
target to optimize t

target/riscv: rvv: Provide a fast path using direct access to host ram for unmasked unit-stride load/store

This commit references the sve_ldN_r/sve_stN_r helper functions in ARM
target to optimize the vector unmasked unit-stride load/store
implementation with following optimizations:

* Get the page boundary
* Probing pages/resolving host memory address at the beginning if
possible
* Provide new interface to direct access host memory
* Switch to the original slow TLB access when cross page element/violate
page permission/violate pmp/watchpoints in page

The original element load/store interface is replaced by the new element
load/store functions with _tlb & _host postfix that means doing the
element load/store through the original softmmu flow and the direct
access host memory flow.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-4-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

2f07784218-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: rvv: Replace VSTART_CHECK_EARLY_EXIT in vext_ldst_us

Because the real vl (evl) of vext_ldst_us may be different (e.g.
vlm.v/vsm.v/etc.), so the VSTART_CHECK_EARLY_EXIT checking functio

target/riscv: rvv: Replace VSTART_CHECK_EARLY_EXIT in vext_ldst_us

Because the real vl (evl) of vext_ldst_us may be different (e.g.
vlm.v/vsm.v/etc.), so the VSTART_CHECK_EARLY_EXIT checking function
should be replaced by checking evl in vext_ldst_us.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-3-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

b48381b118-Sep-2024 Max Chou <max.chou@sifive.com>

target/riscv: Set vdata.vm field for vector load/store whole register instructions

The vm field of the vector load/store whole register instruction's
encoding is 1.
The helper function of the vector

target/riscv: Set vdata.vm field for vector load/store whole register instructions

The vm field of the vector load/store whole register instruction's
encoding is 1.
The helper function of the vector load/store whole register instructions
may need the vdata.vm field to do some optimizations.

Signed-off-by: Max Chou <max.chou@sifive.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20240918171412.150107-2-max.chou@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-14.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-14.vars
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/.travis.yml
/openbmc/qemu/Kconfig.host
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/accel/accel-system.c
/openbmc/qemu/accel/tcg/icount-common.c
/openbmc/qemu/backends/hostmem-memfd.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/bsd-user/x86_64/target_arch_thread.h
/openbmc/qemu/configs/devices/i386-softmmu/default.mak
/openbmc/qemu/configs/devices/microblaze-softmmu/default.mak
/openbmc/qemu/configs/devices/microblazeel-softmmu/default.mak
/openbmc/qemu/configs/devices/sh4eb-softmmu/default.mak
/openbmc/qemu/configs/targets/sh4eb-softmmu.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/cflow.c
/openbmc/qemu/contrib/plugins/meson.build
/openbmc/qemu/crypto/hash-gcrypt.c
/openbmc/qemu/crypto/hash-nettle.c
/openbmc/qemu/crypto/hash.c
/openbmc/qemu/crypto/hmac-gcrypt.c
/openbmc/qemu/crypto/hmac-nettle.c
/openbmc/qemu/crypto/pbkdf-gcrypt.c
/openbmc/qemu/crypto/pbkdf-nettle.c
/openbmc/qemu/crypto/secret_common.c
/openbmc/qemu/crypto/tlscredsanon.c
/openbmc/qemu/crypto/tlscredspsk.c
/openbmc/qemu/crypto/tlscredsx509.c
/openbmc/qemu/docs/about/build-platforms.rst
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/devel/reset.rst
/openbmc/qemu/docs/interop/vhost-user.rst
/openbmc/qemu/docs/system/arm/aspeed.rst
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/system/arm/exynos.rst
/openbmc/qemu/docs/system/arm/fby35.rst
/openbmc/qemu/docs/system/arm/mcimx6ul-evk.rst
/openbmc/qemu/docs/system/arm/mcimx7d-sabre.rst
/openbmc/qemu/docs/system/arm/nuvoton.rst
/openbmc/qemu/docs/system/arm/stm32.rst
/openbmc/qemu/docs/system/arm/xlnx-zcu102.rst
/openbmc/qemu/docs/system/cpu-hotplug.rst
/openbmc/qemu/docs/system/devices/virtio-gpu.rst
/openbmc/qemu/docs/system/i386/nitro-enclave.rst
/openbmc/qemu/docs/system/ppc/pseries.rst
/openbmc/qemu/docs/system/target-arm.rst
/openbmc/qemu/docs/system/target-i386.rst
/openbmc/qemu/fpu/softfloat-specialize.c.inc
/openbmc/qemu/host/include/i386/host/cpuinfo.h
/openbmc/qemu/hw/acpi/aml-build.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/generic_event_device.c
/openbmc/qemu/hw/acpi/meson.build
/openbmc/qemu/hw/acpi/pci.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast27x0.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/block/pflash_cfi01.c
/openbmc/qemu/hw/block/vhost-user-blk.c
/openbmc/qemu/hw/char/sifive_uart.c
/openbmc/qemu/hw/core/Kconfig
/openbmc/qemu/hw/core/eif.c
/openbmc/qemu/hw/core/eif.h
/openbmc/qemu/hw/core/machine-smp.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/meson.build
/openbmc/qemu/hw/core/qdev.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/display/trace-events
/openbmc/qemu/hw/display/virtio-gpu-gl.c
/openbmc/qemu/hw/display/virtio-gpu-virgl.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/gpio/mpc8xxx.c
/openbmc/qemu/hw/i2c/mpc_i2c.c
/openbmc/qemu/hw/i2c/smbus_eeprom.c
/openbmc/qemu/hw/i2c/trace-events
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/amd_iommu.h
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/i386/intel_iommu_internal.h
/openbmc/qemu/hw/i386/meson.build
/openbmc/qemu/hw/i386/microvm.c
/openbmc/qemu/hw/i386/nitro_enclave.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/intc/arm_gic_kvm.c
/openbmc/qemu/hw/intc/pnv_xive2.c
/openbmc/qemu/hw/intc/spapr_xive_kvm.c
/openbmc/qemu/hw/intc/xics.c
/openbmc/qemu/hw/intc/xive.c
/openbmc/qemu/hw/intc/xive2.c
/openbmc/qemu/hw/loongarch/boot.c
/openbmc/qemu/hw/m68k/next-cube.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/microblaze/petalogix_ml605_mmu.c
/openbmc/qemu/hw/microblaze/petalogix_s3adsp1800_mmu.c
/openbmc/qemu/hw/microblaze/xlnx-zynqmp-pmu.c
/openbmc/qemu/hw/net/fsl_etsec/etsec.c
/openbmc/qemu/hw/net/fsl_etsec/miim.c
/openbmc/qemu/hw/net/npcm_gmac.c
/openbmc/qemu/hw/net/trace-events
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvme/dif.c
/openbmc/qemu/hw/nvme/ns.c
/openbmc/qemu/hw/nvme/nvme.h
/openbmc/qemu/hw/nvme/trace-events
/openbmc/qemu/hw/pci-bridge/cxl_downstream.c
/openbmc/qemu/hw/pci-bridge/cxl_root_port.c
/openbmc/qemu/hw/pci-bridge/cxl_upstream.c
/openbmc/qemu/hw/pci-bridge/pci_expander_bridge.c
/openbmc/qemu/hw/pci-host/gpex-acpi.c
/openbmc/qemu/hw/pci-host/ppce500.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_bridge.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/ppc/e500.c
/openbmc/qemu/hw/ppc/e500.h
/openbmc/qemu/hw/ppc/mpc8544_guts.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_adu.c
/openbmc/qemu/hw/ppc/pnv_lpc.c
/openbmc/qemu/hw/ppc/ppc.c
/openbmc/qemu/hw/ppc/ppc440_bamboo.c
/openbmc/qemu/hw/ppc/ppc_booke.c
/openbmc/qemu/hw/ppc/ppce500_spin.c
/openbmc/qemu/hw/ppc/sam460ex.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_nested.c
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/ppc/virtex_ml507.c
/openbmc/qemu/hw/riscv/riscv-iommu.c
/openbmc/qemu/hw/rtc/ds1338.c
/openbmc/qemu/hw/rtc/trace-events
/openbmc/qemu/hw/s390x/Kconfig
/openbmc/qemu/hw/sd/aspeed_sdhci.c
/openbmc/qemu/hw/sd/omap_mmc.c
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/sensor/tmp105.c
/openbmc/qemu/hw/sensor/trace-events
/openbmc/qemu/hw/sensor/trace.h
/openbmc/qemu/hw/ssi/pnv_spi.c
/openbmc/qemu/hw/timer/aspeed_timer.c
/openbmc/qemu/hw/timer/imx_gpt.c
/openbmc/qemu/hw/timer/trace-events
/openbmc/qemu/hw/usb/hcd-ehci-sysbus.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/Kconfig
/openbmc/qemu/hw/virtio/cbor-helpers.c
/openbmc/qemu/hw/virtio/meson.build
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/hw/virtio/virtio-nsm-pci.c
/openbmc/qemu/hw/virtio/virtio-nsm.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/watchdog/wdt_imx2.c
/openbmc/qemu/include/block/nvme.h
/openbmc/qemu/include/crypto/hash.h
/openbmc/qemu/include/disas/capstone.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/fpu/softfloat-helpers.h
/openbmc/qemu/include/fpu/softfloat-types.h
/openbmc/qemu/include/hw/acpi/aml-build.h
/openbmc/qemu/include/hw/acpi/pci.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/cxl/cxl_device.h
/openbmc/qemu/include/hw/i386/intel_iommu.h
/openbmc/qemu/include/hw/i386/microvm.h
/openbmc/qemu/include/hw/i386/nitro_enclave.h
/openbmc/qemu/include/hw/i386/topology.h
/openbmc/qemu/include/hw/pci-bridge/cxl_upstream_port.h
/openbmc/qemu/include/hw/pci-host/spapr.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pci_bridge.h
/openbmc/qemu/include/hw/pci/pci_device.h
/openbmc/qemu/include/hw/pci/pcie.h
/openbmc/qemu/include/hw/ppc/ppc.h
/openbmc/qemu/include/hw/ppc/spapr.h
/openbmc/qemu/include/hw/ppc/spapr_cpu_core.h
/openbmc/qemu/include/hw/ppc/spapr_nested.h
/openbmc/qemu/include/hw/ppc/xive.h
/openbmc/qemu/include/hw/ppc/xive2.h
/openbmc/qemu/include/hw/ppc/xive2_regs.h
/openbmc/qemu/include/hw/ppc/xive_regs.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/sd/sd.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/virtio/cbor-helpers.h
/openbmc/qemu/include/hw/virtio/vhost-user.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/hw/virtio/virtio-nsm.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/qemu/host-utils.h
/openbmc/qemu/include/qom/object.h
/openbmc/qemu/include/standard-headers/drm/drm_fourcc.h
/openbmc/qemu/include/standard-headers/linux/const.h
/openbmc/qemu/include/standard-headers/linux/ethtool.h
/openbmc/qemu/include/standard-headers/linux/fuse.h
/openbmc/qemu/include/standard-headers/linux/input-event-codes.h
/openbmc/qemu/include/standard-headers/linux/pci_regs.h
/openbmc/qemu/include/standard-headers/linux/virtio_balloon.h
/openbmc/qemu/include/standard-headers/linux/virtio_gpu.h
/openbmc/qemu/include/sysemu/cpu-throttle.h
/openbmc/qemu/include/sysemu/hostmem.h
/openbmc/qemu/linux-headers/asm-arm64/mman.h
/openbmc/qemu/linux-headers/asm-arm64/unistd.h
/openbmc/qemu/linux-headers/asm-arm64/unistd_64.h
/openbmc/qemu/linux-headers/asm-generic/unistd.h
/openbmc/qemu/linux-headers/asm-loongarch/kvm.h
/openbmc/qemu/linux-headers/asm-loongarch/kvm_para.h
/openbmc/qemu/linux-headers/asm-loongarch/unistd.h
/openbmc/qemu/linux-headers/asm-loongarch/unistd_64.h
/openbmc/qemu/linux-headers/asm-riscv/kvm.h
/openbmc/qemu/linux-headers/asm-riscv/unistd.h
/openbmc/qemu/linux-headers/asm-riscv/unistd_32.h
/openbmc/qemu/linux-headers/asm-riscv/unistd_64.h
/openbmc/qemu/linux-headers/asm-x86/kvm.h
/openbmc/qemu/linux-headers/asm-x86/unistd_64.h
/openbmc/qemu/linux-headers/asm-x86/unistd_x32.h
/openbmc/qemu/linux-headers/linux/bits.h
/openbmc/qemu/linux-headers/linux/const.h
/openbmc/qemu/linux-headers/linux/iommufd.h
/openbmc/qemu/linux-headers/linux/kvm.h
/openbmc/qemu/linux-headers/linux/mman.h
/openbmc/qemu/linux-headers/linux/psp-sev.h
/openbmc/qemu/linux-user/arm/nwfpe/fpa11.c
/openbmc/qemu/linux-user/gen-vdso-elfn.c.inc
/openbmc/qemu/linux-user/gen-vdso.c
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/signal-common.h
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/cpu-throttle.c
/openbmc/qemu/migration/dirtyrate.c
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/trace-events
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/pc-bios/hppa-firmware64.img
/openbmc/qemu/qapi/crypto.json
/openbmc/qemu/qapi/machine-common.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/qdev.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qga/commands-posix.c
/openbmc/qemu/qga/commands-windows-ssh.c
/openbmc/qemu/qga/vss-win32/install.cpp
/openbmc/qemu/qga/vss-win32/provider.cpp
/openbmc/qemu/qga/vss-win32/requester.cpp
/openbmc/qemu/qom/object.c
/openbmc/qemu/qom/object_interfaces.c
/openbmc/qemu/qom/qom-qmp-cmds.c
/openbmc/qemu/roms/seabios-hppa
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/scripts/symlink-install-tree.py
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/system/cpu-timers.c
/openbmc/qemu/system/meson.build
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/system/trace-events
/openbmc/qemu/target/alpha/cpu.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/kvm_arm.h
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/hflags.c
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/arm/tcg/vec_helper.c
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/hppa/fpu_helper.c
/openbmc/qemu/target/i386/cpu-dump.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.h
/openbmc/qemu/target/i386/host-cpu.c
/openbmc/qemu/target/i386/hvf/x86_cpuid.c
/openbmc/qemu/target/i386/kvm/kvm-cpu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/tcg/cc_helper.c
/openbmc/qemu/target/i386/tcg/cc_helper_template.h.inc
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/i386/tcg/helper-tcg.h
/openbmc/qemu/target/i386/tcg/int_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/loongarch/kvm/kvm.c
/openbmc/qemu/target/loongarch/loongarch-qmp-cmds.c
/openbmc/qemu/target/loongarch/machine.c
/openbmc/qemu/target/loongarch/tcg/fpu_helper.c
/openbmc/qemu/target/m68k/cpu.c
/openbmc/qemu/target/m68k/fpu_helper.c
/openbmc/qemu/target/m68k/helper.c
/openbmc/qemu/target/microblaze/cpu.c
/openbmc/qemu/target/mips/cpu-defs.c.inc
/openbmc/qemu/target/mips/cpu.c
/openbmc/qemu/target/mips/cpu.h
/openbmc/qemu/target/mips/fpu_helper.h
/openbmc/qemu/target/mips/mips-defs.h
/openbmc/qemu/target/mips/msa.c
/openbmc/qemu/target/mips/sysemu/machine.c
/openbmc/qemu/target/mips/tcg/godson2.decode
/openbmc/qemu/target/mips/tcg/loong-ext.decode
/openbmc/qemu/target/mips/tcg/loong_translate.c
/openbmc/qemu/target/mips/tcg/meson.build
/openbmc/qemu/target/mips/tcg/micromips_translate.c.inc
/openbmc/qemu/target/mips/tcg/translate.c
/openbmc/qemu/target/mips/tcg/translate.h
/openbmc/qemu/target/openrisc/cpu.c
/openbmc/qemu/target/ppc/compat.c
/openbmc/qemu/target/ppc/cpu-models.c
/openbmc/qemu/target/ppc/cpu-models.h
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/cpu_init.h
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/machine.c
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/mmu-hash64.c
/openbmc/qemu/target/ppc/translate.c
insn_trans/trans_rvv.c.inc
/openbmc/qemu/target/rx/cpu.c
/openbmc/qemu/target/s390x/cpu.c
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/fop_helper.c
/openbmc/qemu/target/xtensa/cpu.c
/openbmc/qemu/target/xtensa/cpu.h
/openbmc/qemu/target/xtensa/fpu_helper.c
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/data/acpi/disassemle-aml.sh
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbrroot
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.ipmikcs
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.roothp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.applesmc
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmismbus
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ivrs
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.multi-bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.noacpihp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.pvpanic-isa
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.viot
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.xapic
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/centos9.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-rust-nightly.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2204.docker
/openbmc/qemu/tests/fp/fp-bench.c
/openbmc/qemu/tests/fp/fp-test-log2.c
/openbmc/qemu/tests/fp/fp-test.c
/openbmc/qemu/tests/functional/meson.build
/openbmc/qemu/tests/functional/qemu_test/asset.py
/openbmc/qemu/tests/functional/qemu_test/tuxruntest.py
/openbmc/qemu/tests/functional/qemu_test/utils.py
/openbmc/qemu/tests/functional/test_aarch64_tcg_plugins.py
/openbmc/qemu/tests/functional/test_arm_bpim2u.py
/openbmc/qemu/tests/functional/test_arm_collie.py
/openbmc/qemu/tests/functional/test_arm_orangepi.py
/openbmc/qemu/tests/functional/test_arm_sx1.py
/openbmc/qemu/tests/functional/test_ppc64_tuxrun.py
/openbmc/qemu/tests/functional/test_sh4eb_r2d.py
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qtest/endianness-test.c
/openbmc/qemu/tests/qtest/fuzz-virtio-balloon-test.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/machine-none-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/pnv-xive2-common.c
/openbmc/qemu/tests/qtest/pnv-xive2-common.h
/openbmc/qemu/tests/qtest/pnv-xive2-flush-sync.c
/openbmc/qemu/tests/qtest/pnv-xive2-test.c
/openbmc/qemu/tests/tcg/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/linux/linux-sigrtminmax.c
/openbmc/qemu/tests/tcg/ppc64/Makefile.target
/openbmc/qemu/tests/unit/test-crypto-hash.c
/openbmc/qemu/tests/unit/test-crypto-hmac.c
/openbmc/qemu/tests/unit/test-crypto-pbkdf.c
/openbmc/qemu/tests/vm/generated/freebsd.json
/openbmc/qemu/tests/vm/openbsd
/openbmc/qemu/util/cpuinfo-i386.c
c128d39e29-Oct-2024 Anton Blanchard <antonb@tenstorrent.com>

target/riscv: Fix vcompress with rvv_ta_all_1s

vcompress packs vl or less fields into vd, so the tail starts after the
last packed field. This could be more clearly expressed in the ISA,
but for now

target/riscv: Fix vcompress with rvv_ta_all_1s

vcompress packs vl or less fields into vd, so the tail starts after the
last packed field. This could be more clearly expressed in the ISA,
but for now this thread helps to explain it:

https://github.com/riscv/riscv-v-spec/issues/796

Signed-off-by: Anton Blanchard <antonb@tenstorrent.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241030043538.939712-1-antonb@tenstorrent.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

fd16cfb228-Oct-2024 Daniel Henrique Barboza <dbarboza@ventanamicro.com>

target/riscv/kvm: clarify how 'riscv-aia' default works

We do not have control in the default 'riscv-aia' default value. We can
try to set it to a specific value, in this case 'auto', but there's no

target/riscv/kvm: clarify how 'riscv-aia' default works

We do not have control in the default 'riscv-aia' default value. We can
try to set it to a specific value, in this case 'auto', but there's no
guarantee that the host will accept it.

Couple with this we're always doing a 'qemu_log' to inform whether we're
ended up using the host default or if we managed to set the AIA mode to
the QEMU default we wanted to set.

Change the 'riscv-aia' description to better reflect how the option
works, and remove the two informative 'qemu_log' that are now unneeded:
if no message shows, riscv-aia was set to the default or uset-set value.

Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241028182037.290171-3-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

d201a12728-Oct-2024 Daniel Henrique Barboza <dbarboza@ventanamicro.com>

target/riscv/kvm: set 'aia_mode' to default in error path

When failing to set the selected AIA mode, 'aia_mode' is left untouched.
This means that 'aia_mode' will not reflect the actual AIA mode,
re

target/riscv/kvm: set 'aia_mode' to default in error path

When failing to set the selected AIA mode, 'aia_mode' is left untouched.
This means that 'aia_mode' will not reflect the actual AIA mode,
retrieved in 'default_aia_mode',

This is benign for now, but it will impact QMP query commands that will
expose the 'aia_mode' value, retrieving the wrong value.

Set 'aia_mode' to 'default_aia_mode' if we fail to change the AIA mode
in KVM.

While we're at it, rework the log/warning messages to be a bit less
verbose. Instead of:

KVM AIA: default mode is emul
qemu-system-riscv64: warning: KVM AIA: failed to set KVM AIA mode

We can use a single warning message:

qemu-system-riscv64: warning: KVM AIA: failed to set KVM AIA mode 'auto', using default host mode 'emul'

Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241028182037.290171-2-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

a6a4731908-Oct-2024 Deepak Gupta <debug@rivosinc.com>

target/riscv: Expose zicfiss extension as a cpu property

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241008225010.1861630

target/riscv: Expose zicfiss extension as a cpu property

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241008225010.1861630-21-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

905c032408-Oct-2024 Deepak Gupta <debug@rivosinc.com>

target/riscv: compressed encodings for sspush and sspopchk

sspush/sspopchk have compressed encodings carved out of zcmops.
compressed sspush is designated as c.mop.1 while compressed sspopchk
is des

target/riscv: compressed encodings for sspush and sspopchk

sspush/sspopchk have compressed encodings carved out of zcmops.
compressed sspush is designated as c.mop.1 while compressed sspopchk
is designated as c.mop.5.

Note that c.sspush x1 exists while c.sspush x5 doesn't. Similarly
c.sspopchk x5 exists while c.sspopchk x1 doesn't.

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Co-developed-by: Jim Shu <jim.shu@sifive.com>
Co-developed-by: Andy Chiu <andy.chiu@sifive.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241008225010.1861630-18-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

f06bfe3d08-Oct-2024 Deepak Gupta <debug@rivosinc.com>

target/riscv: implement zicfiss instructions

zicfiss has following instructions
- sspopchk: pops a value from shadow stack and compares with x1/x5.
If they dont match, reports a sw check excepti

target/riscv: implement zicfiss instructions

zicfiss has following instructions
- sspopchk: pops a value from shadow stack and compares with x1/x5.
If they dont match, reports a sw check exception with tval = 3.
- sspush: pushes value in x1/x5 on shadow stack
- ssrdp: reads current shadow stack
- ssamoswap: swaps contents of shadow stack atomically

sspopchk/sspush/ssrdp default to zimop if zimop implemented and SSE=0

If SSE=0, ssamoswap is illegal instruction exception.

This patch implements shadow stack operations for qemu-user and shadow
stack is not protected.

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Co-developed-by: Jim Shu <jim.shu@sifive.com>
Co-developed-by: Andy Chiu <andy.chiu@sifive.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241008225010.1861630-17-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

f21b36a008-Oct-2024 Deepak Gupta <debug@rivosinc.com>

target/riscv: update `decode_save_opc` to store extra word2

Extra word 2 is stored during tcg compile and `decode_save_opc` needs
additional argument in order to pass the value. This will be used du

target/riscv: update `decode_save_opc` to store extra word2

Extra word 2 is stored during tcg compile and `decode_save_opc` needs
additional argument in order to pass the value. This will be used during
unwind to get extra information about instruction like how to massage
exceptions. Updated all callsites as well.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/594

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241008225010.1861630-16-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

98f21c3008-Oct-2024 Deepak Gupta <debug@rivosinc.com>

target/riscv: AMO operations always raise store/AMO fault

This patch adds one more word for tcg compile which can be obtained during
unwind time to determine fault type for original operation (examp

target/riscv: AMO operations always raise store/AMO fault

This patch adds one more word for tcg compile which can be obtained during
unwind time to determine fault type for original operation (example AMO).
Depending on that, fault can be promoted to store/AMO fault.

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241008225010.1861630-15-debug@rivosinc.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>

show more ...

12345678910>>...71