qemu-e2k/tests/tcg
Marco Liebel 3fd49e2217 Hexagon (target/hexagon) Fix assignment to tmp registers
The order in which instructions are generated by gen_insn() influences
assignment to tmp registers. During generation, tmp instructions (e.g.
generate_V6_vassign_tmp) use vreg_src_off() to determine what kind of
register to use as source. If some instruction (e.g.
generate_V6_vmpyowh_64_acc) uses a tmp register but is generated prior
to the corresponding tmp instruction, the vregs_updated_tmp bit map
isn't updated in time.

Exmple:
    { v14.tmp = v16; v25 = v14 } This works properly because
    generate_V6_vassign_tmp is generated before generate_V6_vassign
    and the bit map is updated.

    { v15:14.tmp = vcombine(v21, v16); v25:24 += vmpyo(v18.w,v14.h) }
    This does not work properly because vmpyo is generated before
    vcombine and therefore the bit map does not yet know that there's
    a tmp register.

The parentheses in the decoding function were in the wrong place.
Moving them to the correct location makes shuffling of .tmp vector
registers work as expected.

Signed-off-by: Marco Liebel <quic_mliebel@quicinc.com>
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>
Tested-by: Taylor Simpson <tsimpson@quicinc.com>
Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20230522174708.464197-1-quic_mliebel@quicinc.com>
2023-05-26 07:03:41 -07:00
..
aarch64 tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
alpha
arm tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
cris tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
hexagon Hexagon (target/hexagon) Fix assignment to tmp registers 2023-05-26 07:03:41 -07:00
hppa tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
i386 tests/tcg/i386: correct mask for VPERM2F128/VPERM2I128 2023-05-18 08:53:50 +02:00
loongarch64 target/loongarch: Remove cpu_fcsr0 2022-08-08 19:42:53 -07:00
m68k tests/tcg/m68k: Add trap.c 2022-06-02 09:35:03 +02:00
minilib Remove leading underscores from QEMU defines 2021-06-21 05:49:01 +02:00
mips
multiarch Hexagon update 2023-05-18 20:44:34 -07:00
nios2 tests/tcg/nios2: Tweak 10m50-ghrd.ld 2022-10-31 20:37:58 +00:00
openrisc
ppc
ppc64 tests: tcg: ppc64: Add tests for Vector Extract Mask Instructions 2023-05-05 12:34:22 -03:00
ppc64le tests/tcg: unify ppc64 and ppc64le Makefiles 2022-10-06 11:53:40 +01:00
riscv64 tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
s390x tests/tcg/s390x: Test EXECUTE of relative branches 2023-05-16 09:14:18 +02:00
sh4 tests/tcg: re-enable threadcount for sh4 2022-10-31 20:37:59 +00:00
sparc64 tests/tcg/sparc64: Re-enable linux-test 2021-05-15 21:43:23 +02:00
tricore tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
x86_64 target/i386: Fix 32-bit AD[CO]X insns in 64-bit mode 2023-02-16 16:57:34 +01:00
xtensa tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
xtensaeb tests/tcg/xtensa: allow testing big-endian cores 2023-03-15 05:08:04 -07:00
Makefile.target tests/tcg: limit the scope of the plugin tests 2023-04-27 14:58:23 +01:00
README Drop the deprecated lm32 target 2021-05-12 18:20:25 +02:00

This directory contains various interesting guest programs for
regression testing. Tests are either multi-arch, meaning they can be
built for all guest architectures that support linux-user executable,
or they are architecture specific.

CRIS
====
The testsuite for CRIS is in tests/tcg/cris.  You can run it
with "make test-cris".