History log of /openbmc/qemu/target/arm/tcg/ (Results 51 – 75 of 411)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
76dd366630-Aug-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Correct names of VFP VFNMA and VFNMS insns

In vfp.decode we have the names of the VFNMA and VFNMS instructions
the wrong way around. The architecture says that bit 6 is the 'op'
bit, wh

target/arm: Correct names of VFP VFNMA and VFNMS insns

In vfp.decode we have the names of the VFNMA and VFNMS instructions
the wrong way around. The architecture says that bit 6 is the 'op'
bit, which is 1 for VFNMA and 0 for VFNMS, but we label these two
lines of decode the other way around. This doesn't cause any
user-visible problem because in the handling of these functions in
translate-vfp.c we give VFNMA the behaviour specified for VFNMS and
vice-versa, but it's confusing when reading the code.

Switch the names of the VFP VFNMA and VFNMS instructions in
the decode file and flip the behaviour also.

NB: the instructions VFMA and VFMS *are* decoded with op=0 for
VFMA and op=1 for VFMS; the confusion probably arose because
we assumed VFNMA and VFNMS to be the same way around.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2536
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240830152156.2046590-1-peter.maydell@linaro.org
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

5d1187b303-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Enable FEAT_EBF16 in the "max" CPU

Now that we've implemented the required behaviour for FEAT_EBF16, we
can enable it for the "max" CPU type, list it in our documentation,
and delete a T

target/arm: Enable FEAT_EBF16 in the "max" CPU

Now that we've implemented the required behaviour for FEAT_EBF16, we
can enable it for the "max" CPU type, list it in our documentation,
and delete a TODO comment about it being missing.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

0e18501803-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Implement FPCR.EBF=1 semantics for bfdotadd()

Implement the FPCR.EBF=1 semantics for bfdotadd() operations:
* is_ebf() sets up fpst and fpst_odd
* bfdotadd_ebf() implements the fused p

target/arm: Implement FPCR.EBF=1 semantics for bfdotadd()

Implement the FPCR.EBF=1 semantics for bfdotadd() operations:
* is_ebf() sets up fpst and fpst_odd
* bfdotadd_ebf() implements the fused paired-multiply-and-add
operation that we need

The paired-multiply-and-add is similar to f16_dotadd() and
we use the same trick here as in that function, but the inputs
here are bfloat16 rather than float16.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

09b0d9e003-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Prepare bfdotadd() callers for FEAT_EBF support

We use bfdotadd() in four callsites for various helper functions. Currently
this all assumes that we have the FPCR.EBF=0 semantics. For FP

target/arm: Prepare bfdotadd() callers for FEAT_EBF support

We use bfdotadd() in four callsites for various helper functions. Currently
this all assumes that we have the FPCR.EBF=0 semantics. For FPCR.EBF=1
we will need to:
* call a different routine to bfdotadd() because we need to do a
fused multiply-add rather than separate multiply and add steps
* use a different float_status that honours the FPCR rounding mode
and denormal-flushing fields
* pass in an extra float_status that has been set up to perform
round-to-odd rounding

To prepare for this, refactor all the callsites so that instead of
for (...) {
x = bfdotadd(...);
}

they are:
float_status fpst, fpst_odd;
if (is_ebf(env, &fpst, &fpst_odd)) {
for (...) {
x = bfdotadd_ebf(..., &fpst, &fpst_odd);
}
} else {
for (...) {
x = bfdotadd(..., &fpst);
}
}

For the moment the is_ebf() function always returns false, sets up
fpst for EBF=0 semantics and never sets up fpst_odd; bfdotadd_ebf()
will assert if called. We'll fill in the handling for EBF=1 in the
next commit.

This change should be a zero-behaviour-change refactor.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

2da2d7dc03-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Pass env pointer through to gvec_bfmmla helper

Pass the env pointer through to the gvec_bfmmla helper,
so we can use it to add support for FEAT_EBF16.

Signed-off-by: Peter Maydell <pete

target/arm: Pass env pointer through to gvec_bfmmla helper

Pass the env pointer through to the gvec_bfmmla helper,
so we can use it to add support for FEAT_EBF16.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

c8d644b903-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Pass env pointer through to gvec_bfdot_idx helper

Pass the env pointer through to the gvec_bfdot_idx helper,
so we can use it to add support for FEAT_EBF16.

Signed-off-by: Peter Maydell

target/arm: Pass env pointer through to gvec_bfdot_idx helper

Pass the env pointer through to the gvec_bfdot_idx helper,
so we can use it to add support for FEAT_EBF16.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

75a6784d03-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Pass env pointer through to gvec_bfdot helper

Pass the env pointer through to the gvec_bfdot helper,
so we can use it to add support for FEAT_EBF16.

Signed-off-by: Peter Maydell <peter.

target/arm: Pass env pointer through to gvec_bfdot helper

Pass the env pointer through to the gvec_bfdot helper,
so we can use it to add support for FEAT_EBF16.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

ecabcfa403-Sep-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Pass env pointer through to sme_bfmopa helper

To implement the FEAT_EBF16 semantics, we are going to need
the CPUARMState env pointer in every helper function which calls
bfdotadd().

Pa

target/arm: Pass env pointer through to sme_bfmopa helper

To implement the FEAT_EBF16 semantics, we are going to need
the CPUARMState env pointer in every helper function which calls
bfdotadd().

Pass the env pointer through from generated code to the sme_bfmopa
helper. (We'll add the code that uses it when we've adjusted
all the helpers to have access to the env pointer.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/openbmc/qemu/.gitlab-ci.d/cirrus/build.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-13.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-13.vars
/openbmc/qemu/.gitlab-ci.d/cirrus/macos-14.vars
/openbmc/qemu/.gitlab-ci.d/windows.yml
/openbmc/qemu/Makefile
/openbmc/qemu/VERSION
/openbmc/qemu/accel/tcg/tcg-accel-ops-rr.c
/openbmc/qemu/blockdev-nbd.c
/openbmc/qemu/bsd-user/mmap.c
/openbmc/qemu/chardev/char.c
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/execlog.c
/openbmc/qemu/crypto/tlscredspsk.c
/openbmc/qemu/docs/about/emulation.rst
/openbmc/qemu/docs/devel/migration/uadk-compression.rst
/openbmc/qemu/docs/devel/tcg-plugins.rst
/openbmc/qemu/docs/interop/qemu-ga.rst
/openbmc/qemu/docs/sphinx/qapidoc.py
/openbmc/qemu/docs/tools/qemu-vmsr-helper.rst
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/dma/xilinx_axidma.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/loongarch/acpi-build.c
/openbmc/qemu/hw/mips/loongson3_virt.c
/openbmc/qemu/hw/net/vhost_net.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/remote/message.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/sysemu/replay.h
/openbmc/qemu/include/sysemu/runstate.h
/openbmc/qemu/linux-user/mips/target_elf.h
/openbmc/qemu/linux-user/mips64/target_elf.h
/openbmc/qemu/linux-user/mmap.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/plugins/core.c
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/po/it.po
/openbmc/qemu/qapi/rocker.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/main.c
/openbmc/qemu/replay/replay.c
/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/replay-dump.py
/openbmc/qemu/system/runstate.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.h
helper-sme.h
sme_helper.c
translate-sme.c
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/hexagon/meson.build
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/helper.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/tcg/access.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/seg_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/mips/tcg/sysemu/tlb_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/tests/avocado/avocado_qemu/__init__.py
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/linux_initrd.py
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/avocado/machine_mips_malta.py
/openbmc/qemu/tests/avocado/machine_rx_gdbsim.py
/openbmc/qemu/tests/avocado/ppc_hv_tests.py
/openbmc/qemu/tests/avocado/replay_kernel.py
/openbmc/qemu/tests/avocado/replay_linux.py
/openbmc/qemu/tests/avocado/reverse_debugging.py
/openbmc/qemu/tests/avocado/smmu.py
/openbmc/qemu/tests/docker/dockerfiles/alpine.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-armel-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-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/lcitool/projects/qemu.yml
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/tcg/x86_64/Makefile.target
/openbmc/qemu/tests/tcg/x86_64/test-2175.c
/openbmc/qemu/tests/vm/generated/freebsd.json
/openbmc/qemu/util/module.c
4c2c047409-Aug-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Fix usage of MMU indexes when EL3 is AArch32

Our current usage of MMU indexes when EL3 is AArch32 is confused.
Architecturally, when EL3 is AArch32, all Secure code runs under the
Secure

target/arm: Fix usage of MMU indexes when EL3 is AArch32

Our current usage of MMU indexes when EL3 is AArch32 is confused.
Architecturally, when EL3 is AArch32, all Secure code runs under the
Secure PL1&0 translation regime:
* code at EL3, which might be Mon, or SVC, or any of the
other privileged modes (PL1)
* code at EL0 (Secure PL0)

This is different from when EL3 is AArch64, in which case EL3 is its
own translation regime, and EL1 and EL0 (whether AArch32 or AArch64)
have their own regime.

We claimed to be mapping Secure PL1 to our ARMMMUIdx_EL3, but didn't
do anything special about Secure PL0, which meant it used the same
ARMMMUIdx_EL10_0 that NonSecure PL0 does. This resulted in a bug
where arm_sctlr() incorrectly picked the NonSecure SCTLR as the
controlling register when in Secure PL0, which meant we were
spuriously generating alignment faults because we were looking at the
wrong SCTLR control bits.

The use of ARMMMUIdx_EL3 for Secure PL1 also resulted in the bug that
we wouldn't honour the PAN bit for Secure PL1, because there's no
equivalent _PAN mmu index for it.

We could fix this in one of two ways:
* The most straightforward is to add new MMU indexes EL30_0,
EL30_3, EL30_3_PAN to correspond to "Secure PL1&0 at PL0",
"Secure PL1&0 at PL1", and "Secure PL1&0 at PL1 with PAN".
This matches how we use indexes for the AArch64 regimes, and
preserves propirties like being able to determine the privilege
level from an MMU index without any other information. However
it would add two MMU indexes (we can share one with ARMMMUIdx_EL3),
and we are already using 14 of the 16 the core TLB code permits.

* The more complicated approach is the one we take here. We use
the same MMU indexes (E10_0, E10_1, E10_1_PAN) for Secure PL1&0
than we do for NonSecure PL1&0. This saves on MMU indexes, but
means we need to check in some places whether we're in the
Secure PL1&0 regime or not before we interpret an MMU index.

The changes in this commit were created by auditing all the places
where we use specific ARMMMUIdx_ values, and checking whether they
needed to be changed to handle the new index value usage.

Note for potential stable backports: taking also the previous
(comment-change-only) commit might make the backport easier.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2326
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240809160430.1144805-3-peter.maydell@linaro.org

show more ...

8e0c9a9e13-Aug-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Clear high SVE elements in handle_vec_simd_wshli

AdvSIMD instructions are supposed to zero bits beyond 128.
Affects SSHLL, USHLL, SSHLL2, USHLL2.

Cc: qemu-stable@nongnu.org
Signed-off-b

target/arm: Clear high SVE elements in handle_vec_simd_wshli

AdvSIMD instructions are supposed to zero bits beyond 128.
Affects SSHLL, USHLL, SSHLL2, USHLL2.

Cc: qemu-stable@nongnu.org
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240717060903.205098-15-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

64678fc409-Aug-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Fix BTI versus CF_PCREL

With pcrel, we cannot check the guarded page bit at translation
time, as different mappings of the same physical page may or may
not have the GP bit set.

Instead

target/arm: Fix BTI versus CF_PCREL

With pcrel, we cannot check the guarded page bit at translation
time, as different mappings of the same physical page may or may
not have the GP bit set.

Instead, add a couple of helpers to check the page at runtime,
after all other filters that might obviate the need for the check.

The set_btype_for_br call must be moved after the gen_a64_set_pc
call to ensure the current pc can still be computed.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240802003028.795476-1-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/block/block-copy.c
/openbmc/qemu/block/monitor/block-hmp-cmds.c
/openbmc/qemu/block/vvfat.c
/openbmc/qemu/blockdev-nbd.c
/openbmc/qemu/docs/pcie_sriov.txt
/openbmc/qemu/docs/specs/pci-ids.rst
/openbmc/qemu/docs/system/index.rst
/openbmc/qemu/gdb-xml/hexagon-core.xml
/openbmc/qemu/hw/block/fdc-isa.c
/openbmc/qemu/hw/block/pflash_cfi01.c
/openbmc/qemu/hw/display/virtio-gpu-gl.c
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/ide/atapi.c
/openbmc/qemu/hw/ide/pci.c
/openbmc/qemu/hw/intc/Kconfig
/openbmc/qemu/hw/intc/loongarch_ipi.c
/openbmc/qemu/hw/intc/loongson_ipi.c
/openbmc/qemu/hw/intc/loongson_ipi_common.c
/openbmc/qemu/hw/intc/meson.build
/openbmc/qemu/hw/loongarch/Kconfig
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/net/igb.c
/openbmc/qemu/hw/net/rtl8139.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/pci-host/gt64120.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_host.c
/openbmc/qemu/hw/pci/pcie_sriov.c
/openbmc/qemu/hw/pci/trace-events
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/virtio/virtio-net-pci.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio-rng.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/block/graph-lock.h
/openbmc/qemu/include/block/nbd.h
/openbmc/qemu/include/hw/intc/loongarch_ipi.h
/openbmc/qemu/include/hw/intc/loongson_ipi.h
/openbmc/qemu/include/hw/intc/loongson_ipi_common.h
/openbmc/qemu/include/hw/loongarch/virt.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pci_device.h
/openbmc/qemu/include/hw/pci/pcie_sriov.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/file.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/nbd/trace-events
/openbmc/qemu/net/net.c
/openbmc/qemu/net/tap.c
/openbmc/qemu/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin
/openbmc/qemu/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/block-export.json
/openbmc/qemu/qapi/block.json
/openbmc/qemu/qapi/char.json
/openbmc/qemu/qapi/control.json
/openbmc/qemu/qapi/crypto.json
/openbmc/qemu/qapi/cxl.json
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/ebpf.json
/openbmc/qemu/qapi/introspect.json
/openbmc/qemu/qapi/job.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/net.json
/openbmc/qemu/qapi/pci.json
/openbmc/qemu/qapi/qdev.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/rocker.json
/openbmc/qemu/qapi/run-state.json
/openbmc/qemu/qapi/sockets.json
/openbmc/qemu/qapi/stats.json
/openbmc/qemu/qapi/transaction.json
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qapi/vfio.json
/openbmc/qemu/qapi/virtio.json
/openbmc/qemu/qemu-nbd.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/roms/opensbi
/openbmc/qemu/system/async-teardown.c
/openbmc/qemu/system/cpus.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/hvf/hvf.c
helper-a64.c
helper-a64.h
translate-a64.c
translate.h
/openbmc/qemu/target/hexagon/cpu-qom.h
/openbmc/qemu/target/hexagon/cpu.c
/openbmc/qemu/target/hexagon/gdbstub.c
/openbmc/qemu/target/hexagon/idef-parser/idef-parser.y
/openbmc/qemu/target/hexagon/op_helper.c
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/riscv/insn_trans/trans_rvd.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvf.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvi.c.inc
/openbmc/qemu/target/riscv/pmu.c
/openbmc/qemu/target/xtensa/exc_helper.c
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tests/qemu-iotests/024
/openbmc/qemu/tests/qemu-iotests/024.out
/openbmc/qemu/tests/qemu-iotests/check
/openbmc/qemu/tests/qemu-iotests/fat16.py
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qemu-iotests/tests/vvfat
/openbmc/qemu/tests/qemu-iotests/tests/vvfat.out
/openbmc/qemu/tests/tcg/hexagon/usr.c
/openbmc/qemu/ui/console.c
/openbmc/qemu/util/oslib-posix.c
55f9f4ee01-Aug-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Handle denormals correctly for FMOPA (widening)

The FMOPA (widening) SME instruction takes pairs of half-precision
floating point values, widens them to single-precision, does a
two-way

target/arm: Handle denormals correctly for FMOPA (widening)

The FMOPA (widening) SME instruction takes pairs of half-precision
floating point values, widens them to single-precision, does a
two-way dot product and accumulates the results into a
single-precision destination. We don't quite correctly handle the
FPCR bits FZ and FZ16 which control flushing of denormal inputs and
outputs. This is because at the moment we pass a single float_status
value to the helper function, which then uses that configuration for
all the fp operations it does. However, because the inputs to this
operation are float16 and the outputs are float32 we need to use the
fp_status_f16 for the float16 input widening but the normal fp_status
for everything else. Otherwise we will apply the flushing control
FPCR.FZ16 to the 32-bit output rather than the FPCR.FZ control, and
incorrectly flush a denormal output to zero when we should not (or
vice-versa).

(In commit 207d30b5fdb5b we tried to fix the FZ handling but
didn't get it right, switching from "use FPCR.FZ for everything" to
"use FPCR.FZ16 for everything".)

Pass the CPU env to the sme_fmopa_h helper instead of an fp_status
pointer, and have the helper pass an extra fp_status into the
f16_dotadd() function so that we can use the right status for the
right parts of this operation.

Cc: qemu-stable@nongnu.org
Fixes: 207d30b5fdb5 ("target/arm: Use FPST_F16 for SME FMOPA (widening)")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2373
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/.gitlab-ci.d/crossbuild-template.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/contrib/plugins/Makefile
/openbmc/qemu/contrib/plugins/cache.c
/openbmc/qemu/contrib/plugins/lockstep.c
/openbmc/qemu/docs/about/emulation.rst
/openbmc/qemu/docs/devel/tcg-plugins.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/meson.build
/openbmc/qemu/docs/sphinx/depfile.py
/openbmc/qemu/hw/arm/mps2-tz.c
/openbmc/qemu/hw/i386/sgx-stub.c
/openbmc/qemu/hw/i386/sgx.c
/openbmc/qemu/include/hw/i386/sgx-epc.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
/openbmc/qemu/plugins/loader.c
/openbmc/qemu/qapi/crypto.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/system/physmem.c
/openbmc/qemu/target/arm/helper.c
helper-sme.h
sme_helper.c
translate-sme.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/kvm/vmsr_energy.c
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/m68k/helper.c
/openbmc/qemu/target/rx/translate.c
/openbmc/qemu/target/s390x/cpu_models_sysemu.c
/openbmc/qemu/target/sh4/helper.c
/openbmc/qemu/target/tricore/op_helper.c
/openbmc/qemu/target/xtensa/mmu_helper.c
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/avocado/tcg_plugins.py
/openbmc/qemu/tests/docker/dockerfiles/debian-all-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-hexagon-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-legacy-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-loongarch-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-tricore-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-xtensa-cross.docker
/openbmc/qemu/tests/meson.build
/openbmc/qemu/tests/tcg/Makefile.target
/openbmc/qemu/tests/tcg/README
/openbmc/qemu/tests/tcg/aarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/alpha/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/arm/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/arm/Makefile.target
/openbmc/qemu/tests/tcg/i386/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/loongarch64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/plugins/bb.c
/openbmc/qemu/tests/tcg/plugins/empty.c
/openbmc/qemu/tests/tcg/plugins/inline.c
/openbmc/qemu/tests/tcg/plugins/insn.c
/openbmc/qemu/tests/tcg/plugins/mem.c
/openbmc/qemu/tests/tcg/plugins/meson.build
/openbmc/qemu/tests/tcg/plugins/syscall.c
/openbmc/qemu/tests/tcg/riscv64/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/x86_64/Makefile.softmmu-target
/openbmc/qemu/tests/vm/openbsd
/openbmc/qemu/tools/i386/qemu-vmsr-helper.c
/openbmc/qemu/util/cpuinfo-aarch64.c
/openbmc/qemu/util/cpuinfo-ppc.c
/openbmc/qemu/util/getauxval.c
76916dfa22-Jul-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Avoid shifts by -1 in tszimm_shr() and tszimm_shl()

The function tszimm_esz() returns a shift amount, or possibly -1 in
certain cases that correspond to unallocated encodings in the
inst

target/arm: Avoid shifts by -1 in tszimm_shr() and tszimm_shl()

The function tszimm_esz() returns a shift amount, or possibly -1 in
certain cases that correspond to unallocated encodings in the
instruction set. We catch these later in the trans_ functions
(generally with an "a-esz < 0" check), but before we do the
decodetree-generated code will also call tszimm_shr() or tszimm_sl(),
which will use the tszimm_esz() return value as a shift count without
checking that it is not negative, which is undefined behaviour.

Avoid the UB by checking the return value in tszimm_shr() and
tszimm_shl().

Cc: qemu-stable@nongnu.org
Resolves: Coverity CID 1547617, 1547694
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240722172957.1041231-4-peter.maydell@linaro.org

show more ...

ea3f5a9022-Jul-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Fix UMOPA/UMOPS of 16-bit values

The UMOPA/UMOPS instructions are supposed to multiply unsigned 8 or
16 bit elements and accumulate the products into a 64-bit element.
In the Arm ARM pse

target/arm: Fix UMOPA/UMOPS of 16-bit values

The UMOPA/UMOPS instructions are supposed to multiply unsigned 8 or
16 bit elements and accumulate the products into a 64-bit element.
In the Arm ARM pseudocode, this is done with the usual
infinite-precision signed arithmetic. However our implementation
doesn't quite get it right, because in the DEF_IMOP_64() macro we do:
sum += (NTYPE)(n >> 0) * (MTYPE)(m >> 0);

where NTYPE and MTYPE are uint16_t or int16_t. In the uint16_t case,
the C usual arithmetic conversions mean the values are converted to
"int" type and the multiply is done as a 32-bit multiply. This means
that if the inputs are, for example, 0xffff and 0xffff then the
result is 0xFFFE0001 as an int, which is then promoted to uint64_t
for the accumulation into sum; this promotion incorrectly sign
extends the multiply.

Avoid the incorrect sign extension by casting to int64_t before
the multiply, so we do the multiply as 64-bit signed arithmetic,
which is a type large enough that the multiply can never
overflow into the sign bit.

(The equivalent 8-bit operations in DEF_IMOP_32() are fine, because
the 8-bit multiplies can never overflow into the sign bit of a
32-bit integer.)

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2372
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240722172957.1041231-3-peter.maydell@linaro.org

show more ...

56f1c0db22-Jul-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Don't assert for 128-bit tile accesses when SVL is 128

For an instruction which accesses a 128-bit element tile when
the SVL is also 128 (for example MOV z0.Q, p0/M, ZA0H.Q[w0,0]),
we wi

target/arm: Don't assert for 128-bit tile accesses when SVL is 128

For an instruction which accesses a 128-bit element tile when
the SVL is also 128 (for example MOV z0.Q, p0/M, ZA0H.Q[w0,0]),
we will assert in get_tile_rowcol():

qemu-system-aarch64: ../../tcg/tcg-op.c:926: tcg_gen_deposit_z_i32: Assertion `len > 0' failed.

This happens because we calculate
len = ctz32(streaming_vec_reg_size(s)) - esz;$
but if the SVL and the element size are the same len is 0, and
the deposit operation asserts.

In this case the ZA storage contains exactly one 128 bit
element ZA tile, and the horizontal or vertical slice is just
that tile. This means that regardless of the index value in
the Ws register, we always access that tile. (In pseudocode terms,
we calculate (index + offset) MOD 1, which is 0.)

Special case the len == 0 case to avoid hitting the assertion
in tcg_gen_deposit_z_i32().

Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240722172957.1041231-2-peter.maydell@linaro.org

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/freebsd-13.vars
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/kvm/kvm-cpus.h
/openbmc/qemu/accel/kvm/trace-events
/openbmc/qemu/accel/stubs/tcg-stub.c
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/audio/dbusaudio.c
/openbmc/qemu/audio/trace-events
/openbmc/qemu/backends/Kconfig
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/backends/meson.build
/openbmc/qemu/backends/spdm-socket.c
/openbmc/qemu/backends/trace-events
/openbmc/qemu/bsd-user/aarch64/signal.c
/openbmc/qemu/bsd-user/aarch64/target.h
/openbmc/qemu/bsd-user/aarch64/target_arch.h
/openbmc/qemu/bsd-user/aarch64/target_arch_cpu.c
/openbmc/qemu/bsd-user/aarch64/target_arch_cpu.h
/openbmc/qemu/bsd-user/aarch64/target_arch_elf.h
/openbmc/qemu/bsd-user/aarch64/target_arch_reg.h
/openbmc/qemu/bsd-user/aarch64/target_arch_signal.h
/openbmc/qemu/bsd-user/aarch64/target_arch_sigtramp.h
/openbmc/qemu/bsd-user/aarch64/target_arch_sysarch.h
/openbmc/qemu/bsd-user/aarch64/target_arch_thread.h
/openbmc/qemu/bsd-user/aarch64/target_arch_vmparam.h
/openbmc/qemu/bsd-user/aarch64/target_syscall.h
/openbmc/qemu/bsd-user/arm/target_arch_signal.h
/openbmc/qemu/bsd-user/freebsd/os-proc.c
/openbmc/qemu/bsd-user/i386/target_arch_signal.h
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/bsd-user/qemu.h
/openbmc/qemu/bsd-user/signal.c
/openbmc/qemu/bsd-user/x86_64/target_arch_signal.h
/openbmc/qemu/chardev/char-socket.c
/openbmc/qemu/chardev/char-win-stdio.c
/openbmc/qemu/chardev/msmouse.c
/openbmc/qemu/chardev/trace-events
/openbmc/qemu/configs/targets/aarch64-bsd-user.mak
/openbmc/qemu/contrib/plugins/Makefile
/openbmc/qemu/contrib/plugins/execlog.c
/openbmc/qemu/contrib/plugins/stoptrigger.c
/openbmc/qemu/contrib/systemd/qemu-vmsr-helper.service
/openbmc/qemu/contrib/systemd/qemu-vmsr-helper.socket
/openbmc/qemu/contrib/vhost-user-blk/vhost-user-blk.c
/openbmc/qemu/cpu-common.c
/openbmc/qemu/crypto/block-luks.c
/openbmc/qemu/crypto/init.c
/openbmc/qemu/crypto/tlssession.c
/openbmc/qemu/docs/about/emulation.rst
/openbmc/qemu/docs/devel/crypto.rst
/openbmc/qemu/docs/devel/index-internals.rst
/openbmc/qemu/docs/devel/luks-detached-header.rst
/openbmc/qemu/docs/devel/tcg-plugins.rst
/openbmc/qemu/docs/interop/firmware.json
/openbmc/qemu/docs/interop/qemu-ga.rst
/openbmc/qemu/docs/specs/acpi_hw_reduced_hotplug.rst
/openbmc/qemu/docs/specs/index.rst
/openbmc/qemu/docs/specs/rapl-msr.rst
/openbmc/qemu/docs/specs/spdm.rst
/openbmc/qemu/docs/system/index.rst
/openbmc/qemu/docs/system/sriov.rst
/openbmc/qemu/docs/tools/index.rst
/openbmc/qemu/docs/tools/qemu-vmsr-helper.rst
/openbmc/qemu/dump/dump.c
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/hw/acpi/acpi-cpu-hotplug-stub.c
/openbmc/qemu/hw/acpi/cpu.c
/openbmc/qemu/hw/acpi/generic_event_device.c
/openbmc/qemu/hw/arm/smmuv3-internal.h
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/block/m25p80.c
/openbmc/qemu/hw/block/vhost-user-blk.c
/openbmc/qemu/hw/char/bcm2835_aux.c
/openbmc/qemu/hw/char/goldfish_tty.c
/openbmc/qemu/hw/core/cpu-common.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/cxl/cxl-events.c
/openbmc/qemu/hw/cxl/cxl-host.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/display/virtio-gpu-gl.c
/openbmc/qemu/hw/i2c/mpc_i2c.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/i386/intel_iommu_internal.h
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/sgx.c
/openbmc/qemu/hw/intc/loongson_ipi.c
/openbmc/qemu/hw/intc/pnv_xive2.c
/openbmc/qemu/hw/intc/pnv_xive2_regs.h
/openbmc/qemu/hw/intc/xive.c
/openbmc/qemu/hw/intc/xive2.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/mips/loongson3_virt.c
/openbmc/qemu/hw/misc/bcm2835_property.c
/openbmc/qemu/hw/net/allwinner_emac.c
/openbmc/qemu/hw/net/vhost_net.c
/openbmc/qemu/hw/nubus/nubus-virtio-mmio.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/pci-host/gpex-acpi.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pcie_sriov.c
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/ppc/meson.build
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_adu.c
/openbmc/qemu/hw/ppc/pnv_chiptod.c
/openbmc/qemu/hw/ppc/pnv_core.c
/openbmc/qemu/hw/ppc/pnv_lpc.c
/openbmc/qemu/hw/ppc/pnv_xscom.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_caps.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_vhyp_mmu.c
/openbmc/qemu/hw/ppc/spapr_vof.c
/openbmc/qemu/hw/ppc/trace-events
/openbmc/qemu/hw/ppc/vof.c
/openbmc/qemu/hw/riscv/virt-acpi-build.c
/openbmc/qemu/hw/rtc/ls7a_rtc.c
/openbmc/qemu/hw/scsi/esp.c
/openbmc/qemu/hw/scsi/vhost-scsi.c
/openbmc/qemu/hw/scsi/vhost-user-scsi.c
/openbmc/qemu/hw/smbios/smbios.c
/openbmc/qemu/hw/ssi/Kconfig
/openbmc/qemu/hw/ssi/meson.build
/openbmc/qemu/hw/ssi/pnv_spi.c
/openbmc/qemu/hw/ssi/trace-events
/openbmc/qemu/hw/timer/hpet.c
/openbmc/qemu/hw/timer/trace-events
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/trace-events
/openbmc/qemu/hw/virtio/vhost-user-fs.c
/openbmc/qemu/hw/virtio/vhost-user-vsock.c
/openbmc/qemu/hw/virtio/virtio-crypto.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio-net-pci.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/block/nvme.h
/openbmc/qemu/include/chardev/char-fe.h
/openbmc/qemu/include/crypto/tlssession.h
/openbmc/qemu/include/exec/cpu-common.h
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/exec/gdbstub.h
/openbmc/qemu/include/gdbstub/commands.h
/openbmc/qemu/include/hw/acpi/cpu.h
/openbmc/qemu/include/hw/acpi/generic_event_device.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/cxl/cxl_mailbox.h
/openbmc/qemu/include/hw/pci/pci_device.h
/openbmc/qemu/include/hw/pci/pcie_doe.h
/openbmc/qemu/include/hw/pci/pcie_sriov.h
/openbmc/qemu/include/hw/ppc/pnv.h
/openbmc/qemu/include/hw/ppc/pnv_adu.h
/openbmc/qemu/include/hw/ppc/pnv_chip.h
/openbmc/qemu/include/hw/ppc/pnv_core.h
/openbmc/qemu/include/hw/ppc/pnv_lpc.h
/openbmc/qemu/include/hw/ppc/pnv_xscom.h
/openbmc/qemu/include/hw/ppc/spapr.h
/openbmc/qemu/include/hw/ppc/xive2_regs.h
/openbmc/qemu/include/hw/ssi/pnv_spi.h
/openbmc/qemu/include/hw/ssi/pnv_spi_regs.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/virtio/virtio-iommu.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/io/channel.h
/openbmc/qemu/include/qemu/fifo8.h
/openbmc/qemu/include/qemu/range.h
/openbmc/qemu/include/semihosting/syscalls.h
/openbmc/qemu/include/sysemu/host_iommu_device.h
/openbmc/qemu/include/sysemu/iommufd.h
/openbmc/qemu/include/sysemu/kvm.h
/openbmc/qemu/include/sysemu/kvm_int.h
/openbmc/qemu/include/sysemu/spdm-socket.h
/openbmc/qemu/io/channel-socket.c
/openbmc/qemu/io/channel-tls.c
/openbmc/qemu/io/channel.c
/openbmc/qemu/linux-headers/asm-powerpc/kvm.h
/openbmc/qemu/meson.build
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/qapi/crypto.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qga/commands-bsd.c
/openbmc/qemu/qga/commands-common.h
/openbmc/qemu/qga/commands-linux.c
/openbmc/qemu/qga/commands-posix.c
/openbmc/qemu/qga/commands-win32.c
/openbmc/qemu/qga/main.c
/openbmc/qemu/qga/qapi-schema.json
/openbmc/qemu/semihosting/Kconfig
/openbmc/qemu/system/memory_mapping.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/target/arm/cpu-param.h
/openbmc/qemu/target/arm/gdbstub.c
/openbmc/qemu/target/arm/gdbstub64.c
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/kvm.c
translate-sme.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/kvm/meson.build
/openbmc/qemu/target/i386/kvm/vmsr_energy.c
/openbmc/qemu/target/i386/kvm/vmsr_energy.h
/openbmc/qemu/target/loongarch/tcg/tlb_helper.c
/openbmc/qemu/target/m68k/Kconfig
/openbmc/qemu/target/m68k/meson.build
/openbmc/qemu/target/m68k/semihosting-stub.c
/openbmc/qemu/target/mips/Kconfig
/openbmc/qemu/target/mips/tcg/sysemu/meson.build
/openbmc/qemu/target/mips/tcg/sysemu/semihosting-stub.c
/openbmc/qemu/target/ppc/arch_dump.c
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/fpu_helper.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/insn32.decode
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/mem_helper.c
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/mmu-book3s-v3.c
/openbmc/qemu/target/ppc/mmu-book3s-v3.h
/openbmc/qemu/target/ppc/mmu-hash32.c
/openbmc/qemu/target/ppc/mmu-hash32.h
/openbmc/qemu/target/ppc/mmu-hash64.c
/openbmc/qemu/target/ppc/mmu-hash64.h
/openbmc/qemu/target/ppc/mmu-radix64.c
/openbmc/qemu/target/ppc/mmu-radix64.h
/openbmc/qemu/target/ppc/mmu_common.c
/openbmc/qemu/target/ppc/timebase_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/vmx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vmx-ops.c.inc
/openbmc/qemu/target/ppc/translate/vsx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vsx-ops.c.inc
/openbmc/qemu/target/riscv/Kconfig
/openbmc/qemu/target/riscv/vector_helper.c
/openbmc/qemu/target/s390x/cpu_models_sysemu.c
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/xtensa/Kconfig
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/avocado/avocado_qemu/__init__.py
/openbmc/qemu/tests/avocado/avocado_qemu/linuxtest.py
/openbmc/qemu/tests/avocado/boot_linux.py
/openbmc/qemu/tests/avocado/boot_xen.py
/openbmc/qemu/tests/avocado/hotplug_blk.py
/openbmc/qemu/tests/avocado/hotplug_cpu.py
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/avocado/mem-addr-space-check.py
/openbmc/qemu/tests/avocado/replay_linux.py
/openbmc/qemu/tests/avocado/smmu.py
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.acpihmatvirt
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.memhp
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.pxb
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.topology
/openbmc/qemu/tests/data/acpi/riscv64/virt/APIC
/openbmc/qemu/tests/data/acpi/riscv64/virt/DSDT
/openbmc/qemu/tests/data/acpi/riscv64/virt/FACP
/openbmc/qemu/tests/data/acpi/riscv64/virt/MCFG
/openbmc/qemu/tests/data/acpi/riscv64/virt/RHCT
/openbmc/qemu/tests/data/acpi/riscv64/virt/SPCR
/openbmc/qemu/tests/data/acpi/x86/microvm/DSDT.pcie
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/plugin/inline.c
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/fuzz/generic_fuzz.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/pnv-spi-seeprom-test.c
/openbmc/qemu/tests/qtest/pnv-xscom.h
/openbmc/qemu/tests/tcg/aarch64/gdbstub/test-mte.py
/openbmc/qemu/tests/tcg/ppc64/Makefile.target
/openbmc/qemu/tests/unit/crypto-tls-psk-helpers.c
/openbmc/qemu/tests/unit/crypto-tls-x509-helpers.c
/openbmc/qemu/tests/unit/crypto-tls-x509-helpers.h
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/tests/unit/pkix_asn1_tab.c.inc
/openbmc/qemu/tests/unit/test-crypto-tlssession.c
/openbmc/qemu/tests/vm/generated/freebsd.json
/openbmc/qemu/tools/i386/qemu-vmsr-helper.c
/openbmc/qemu/tools/i386/rapl-msr-index.h
/openbmc/qemu/ui/clipboard.c
/openbmc/qemu/ui/console-vc.c
/openbmc/qemu/ui/cursor.c
/openbmc/qemu/ui/dbus-clipboard.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/trace-events
/openbmc/qemu/ui/vdagent.c
/openbmc/qemu/ui/vnc.h
/openbmc/qemu/util/async.c
/openbmc/qemu/util/fifo8.c
3b9991e309-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Use set/clear_helper_retaddr in SVE and SME helpers

Avoid a race condition with munmap in another thread.
Use around blocks that exclusively use "host_fn".
Keep the blocks as small as po

target/arm: Use set/clear_helper_retaddr in SVE and SME helpers

Avoid a race condition with munmap in another thread.
Use around blocks that exclusively use "host_fn".
Keep the blocks as small as possible, but without setting
and clearing for every operation on one page.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

8009519b09-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Use set/clear_helper_retaddr in helper-a64.c

Use these in helper_dc_dva and the FEAT_MOPS routines to
avoid a race condition with munmap in another thread.

Reviewed-by: Peter Maydell <p

target/arm: Use set/clear_helper_retaddr in helper-a64.c

Use these in helper_dc_dva and the FEAT_MOPS routines to
avoid a race condition with munmap in another thread.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/user-exec.c
/openbmc/qemu/configs/targets/loongarch64-linux-user.mak
/openbmc/qemu/configs/targets/loongarch64-softmmu.mak
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/system/arm/aspeed.rst
/openbmc/qemu/gdb-xml/loongarch-lasx.xml
/openbmc/qemu/gdb-xml/loongarch-lsx.xml
/openbmc/qemu/hw/adc/aspeed_adc.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/arm/aspeed_ast27x0.c
/openbmc/qemu/hw/arm/aspeed_soc_common.c
/openbmc/qemu/hw/i2c/aspeed_i2c.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/ssi/aspeed_smc.c
/openbmc/qemu/include/exec/cpu_ldst.h
/openbmc/qemu/include/hw/adc/aspeed_adc.h
/openbmc/qemu/include/hw/arm/aspeed_soc.h
/openbmc/qemu/include/hw/i2c/aspeed_i2c.h
/openbmc/qemu/include/hw/intc/loongarch_extioi.h
/openbmc/qemu/include/hw/loongarch/virt.h
/openbmc/qemu/include/hw/misc/aspeed_scu.h
/openbmc/qemu/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin
/openbmc/qemu/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin
/openbmc/qemu/roms/opensbi
/openbmc/qemu/target/arm/hvf/hvf.c
helper-a64.c
/openbmc/qemu/target/loongarch/gdbstub.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/cpu_cfg.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/insn16.decode
/openbmc/qemu/target/riscv/insn32.decode
/openbmc/qemu/target/riscv/insn_trans/trans_rva.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvd.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvf.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvi.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzabha.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzacas.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzcmop.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzimop.c.inc
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/machine.c
/openbmc/qemu/target/riscv/op_helper.c
/openbmc/qemu/target/riscv/pmu.c
/openbmc/qemu/target/riscv/pmu.h
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/qtest/arm-cpu-features.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/sme-fmopa-1.c
/openbmc/qemu/tests/tcg/aarch64/sme-fmopa-2.c
/openbmc/qemu/tests/tcg/aarch64/sme-fmopa-3.c
207d30b517-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Use FPST_F16 for SME FMOPA (widening)

This operation has float16 inputs and thus must use
the FZ16 control not the FZ control.

Cc: qemu-stable@nongnu.org
Fixes: 3916841ac75 ("target/arm

target/arm: Use FPST_F16 for SME FMOPA (widening)

This operation has float16 inputs and thus must use
the FZ16 control not the FZ control.

Cc: qemu-stable@nongnu.org
Fixes: 3916841ac75 ("target/arm: Implement FMOPA, FMOPS (widening)")
Reported-by: Daniyal Khan <danikhan632@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20240717060149.204788-3-richard.henderson@linaro.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2374
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

31d93fed17-Jul-2024 Daniyal Khan <danikhan632@gmail.com>

target/arm: Use float_status copy in sme_fmopa_s

We made a copy above because the fp exception flags
are not propagated back to the FPST register, but
then failed to use the copy.

Cc: qemu-stable@n

target/arm: Use float_status copy in sme_fmopa_s

We made a copy above because the fp exception flags
are not propagated back to the FPST register, but
then failed to use the copy.

Cc: qemu-stable@nongnu.org
Fixes: 558e956c719 ("target/arm: Implement FMOPA, FMOPS (non-widening)")
Signed-off-by: Daniyal Khan <danikhan632@gmail.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20240717060149.204788-2-richard.henderson@linaro.org
[rth: Split from a larger patch]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

25489b5216-Jul-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: LDAPR should honour SCTLR_ELx.nAA

In commit c1a1f80518d360b when we added the FEAT_LSE2 relaxations to
the alignment requirements for atomic and ordered loads and stores,
we didn't quite

target/arm: LDAPR should honour SCTLR_ELx.nAA

In commit c1a1f80518d360b when we added the FEAT_LSE2 relaxations to
the alignment requirements for atomic and ordered loads and stores,
we didn't quite get it right for LDAPR/LDAPRH/LDAPRB with no
immediate offset. These instructions were handled in the old decoder
as part of disas_ldst_atomic(), but unlike all the other insns that
function decoded (LDADD, LDCLR, etc) these insns are "ordered", not
"atomic", so they should be using check_ordered_align() rather than
check_atomic_align(). Commit c1a1f80518d360b used
check_atomic_align() regardless for everything in
disas_ldst_atomic(). We then carried that incorrect check over in
the decodetree conversion, where LDAPR/LDAPRH/LDAPRB are now handled
by trans_LDAPR().

The effect is that when FEAT_LSE2 is implemented, these instructions
don't honour the SCTLR_ELx.nAA bit and will generate alignment
faults when they should not.

(The LDAPR insns with an immediate offset were in disas_ldst_ldapr_stlr()
and then in trans_LDAPR_i() and trans_STLR_i(), and have always used
the correct check_ordered_align().)

Use check_ordered_align() in trans_LDAPR().

Cc: qemu-stable@nongnu.org
Fixes: c1a1f80518d360b ("target/arm: Relax ordered/atomic alignment checks for LSE2")
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240709134504.3500007-3-peter.maydell@linaro.org

show more ...

5669d26e16-Jul-2024 Peter Maydell <peter.maydell@linaro.org>

target/arm: Fix handling of LDAPR/STLR with negative offset

When we converted the LDAPR/STLR instructions to decodetree we
accidentally introduced a regression where the offset is negative.
The 9-bi

target/arm: Fix handling of LDAPR/STLR with negative offset

When we converted the LDAPR/STLR instructions to decodetree we
accidentally introduced a regression where the offset is negative.
The 9-bit immediate field is signed, and the old hand decoder
correctly used sextract32() to get it out of the insn word,
but the ldapr_stlr_i pattern in the decode file used "imm:9"
instead of "imm:s9", so it treated the field as unsigned.

Fix the pattern to treat the field as a signed immediate.

Cc: qemu-stable@nongnu.org
Fixes: 2521b6073b7 ("target/arm: Convert LDAPR/STLR (imm) to decodetree")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2419
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20240709134504.3500007-2-peter.maydell@linaro.org

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/README.rst
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/backends/hostmem-epc.c
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/backends/rng-random.c
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/io.c
/openbmc/qemu/chardev/char-io.c
/openbmc/qemu/configs/targets/loongarch64-softmmu.mak
/openbmc/qemu/cpu-common.c
/openbmc/qemu/docs/conf.py
/openbmc/qemu/docs/devel/qapi-code-gen.rst
/openbmc/qemu/docs/sphinx-static/theme_overrides.css
/openbmc/qemu/docs/sphinx/hxtool.py
/openbmc/qemu/docs/sphinx/kerneldoc.py
/openbmc/qemu/docs/sphinx/qapidoc.py
/openbmc/qemu/hw/core/cpu-common.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/display/ati.c
/openbmc/qemu/hw/display/qxl-render.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/display/vmware_vga.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/sgx.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/isa/vt82c686.c
/openbmc/qemu/hw/loongarch/Kconfig
/openbmc/qemu/hw/loongarch/acpi-build.c
/openbmc/qemu/hw/loongarch/boot.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/mips/fuloong2e.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvme/nvme.h
/openbmc/qemu/hw/nvme/subsys.c
/openbmc/qemu/hw/ppc/amigaone.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/scsi/esp.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/scsi/scsi-bus.c
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/trace-events
/openbmc/qemu/hw/timer/hpet.c
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/usb/host-libusb.c
/openbmc/qemu/hw/usb/u2f-passthru.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/hw/xen/xen-mapcache.c
/openbmc/qemu/include/block/nvme.h
/openbmc/qemu/include/disas/capstone.h
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/loader.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/sd/sd.h
/openbmc/qemu/include/qemu/timer.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/meson.build
/openbmc/qemu/python/qemu/machine/machine.py
/openbmc/qemu/python/qemu/utils/qemu_ga_client.py
/openbmc/qemu/python/setup.cfg
/openbmc/qemu/pythondeps.toml
/openbmc/qemu/qapi/acpi.json
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/block.json
/openbmc/qemu/qapi/char.json
/openbmc/qemu/qapi/control.json
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc-target.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/net.json
/openbmc/qemu/qapi/pci.json
/openbmc/qemu/qapi/qdev.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/replay.json
/openbmc/qemu/qapi/rocker.json
/openbmc/qemu/qapi/run-state.json
/openbmc/qemu/qapi/sockets.json
/openbmc/qemu/qapi/tpm.json
/openbmc/qemu/qapi/trace.json
/openbmc/qemu/qapi/transaction.json
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qapi/vfio.json
/openbmc/qemu/qapi/virtio.json
/openbmc/qemu/qapi/yank.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/scripts/qapi/parser.py
/openbmc/qemu/system/cpus.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/system/vl.c
a64.decode
/openbmc/qemu/target/hexagon/imported/mmvec/ext.idef
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/kvm/kvm.c
/openbmc/qemu/target/loongarch/tcg/insn_trans/trans_shift.c.inc
/openbmc/qemu/target/tricore/cpu.c
/openbmc/qemu/tests/docker/dockerfiles/python.docker
/openbmc/qemu/tests/qapi-schema/doc-good.json
/openbmc/qemu/tests/qapi-schema/doc-good.out
/openbmc/qemu/tests/qapi-schema/doc-good.txt
/openbmc/qemu/tests/qemu-iotests/245
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qemu-iotests/testrunner.py
/openbmc/qemu/tests/qemu-iotests/tests/write-zeroes-unmap
/openbmc/qemu/tests/qemu-iotests/tests/write-zeroes-unmap.out
/openbmc/qemu/ui/cocoa.m
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus-listener.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/sdl2.c
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/util/oslib-posix.c
7f49089108-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Convert PMULL to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.mayd

target/arm: Convert PMULL to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240709000610.382391-7-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

f7a8456508-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Convert ADDHN, SUBHN, RADDHN, RSUBHN to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240

target/arm: Convert ADDHN, SUBHN, RADDHN, RSUBHN to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240709000610.382391-6-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

26cb9dbe08-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Convert SADDW, SSUBW, UADDW, USUBW to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 2024070

target/arm: Convert SADDW, SSUBW, UADDW, USUBW to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240709000610.382391-5-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

7575c57108-Jul-2024 Richard Henderson <richard.henderson@linaro.org>

target/arm: Convert SQDMULL, SQDMLAL, SQDMLSL to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240709

target/arm: Convert SQDMULL, SQDMLAL, SQDMLSL to decodetree

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20240709000610.382391-4-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...

12345678910>>...17