Philippe Mathieu-Daudé
39ac0bac99
target/tricore: Prefer fast cpu_env() over slower CPU QOM cast macro
...
Mechanical patch produced running the command documented
in scripts/coccinelle/cpu_env.cocci_template header.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20240129164514.73104-28-philmd@linaro.org >
Signed-off-by: Thomas Huth <thuth@redhat.com >
2024-03-12 12:04:25 +01:00
Richard Henderson
3b91614004
include/exec: Change cpu_mmu_index argument to CPUState
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
Anton Johansson
32f0c394bb
target: Use vaddr in gen_intermediate_code
...
Makes gen_intermediate_code() signature target agnostic so the function
can be called from accel/tcg/translate-all.c without target specifics.
Signed-off-by: Anton Johansson <anjo@rev.ng >
Message-Id: <20240119144024.14289-9-anjo@rev.ng >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-01-29 07:06:03 +10:00
Richard Henderson
8b8bb29548
target/tricore: Use tcg_gen_*extract_tl
...
The EXTR instructions can use the extract opcodes.
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-10-22 16:44:42 -07:00
Richard Henderson
b77af26e97
accel/tcg: Replace CPUState.env_ptr with cpu_env()
...
Reviewed-by: Anton Johansson <anjo@rev.ng >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-10-04 11:03:54 -07:00
Richard Henderson
ad75a51e84
tcg: Rename cpu_env to tcg_env
...
Allow the name 'cpu_env' to be used for something else.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-10-03 08:01:02 -07:00
Stefan Hajnoczi
5d7e601df3
Merge tag 'pull-shadow-2023-09-29' of https://repo.or.cz/qemu/armbru into staging
...
-Wshadow=local patches patches for 2023-09-29
# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmUWhnsSHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZTDBkP/2E8cyH+fn7yehNAZT8fjBuDBaj0x3wf
# Bs4++bMEZpgfA/11le/Mm+N9BFDtoGj4dnDwQ0yN6bcKcfmNvxh+M+lNaRO+xvXA
# qs/kJtFYkJYuEj1wgKK2XXd4YcD/S4Qap+FSuUBv8KE/oeALkB1fEpvMcwtJtQqc
# 7POQEqYNQfUe+MX/wKZ+qditbbrFRwX69dAd8+nGTbFestXd2uFA5I5kv3ebxELg
# VjTBgQdp7s82iTvoXpTtmQ6A9ba13zmelxmsAMLlAihkbffMwbtbrkQ7qIIUOW1o
# I4WPxhIXXyZbB48qARUq5G3GQuh+7dRArcpYWaFel2a6cjm2Z6NmWJeRAr0cIaWV
# P5B79k7DO551YsBZn+ubH0U+qwMLw+zq2apQ+SeH/loE0pP/c2OBOPtaVI46D0Dh
# 2kgaSuTIy9AByAHoYBxKnxy4TVwPKzk8hdzCQdiRSO7KJdMqMsV+/w1eR4oH9dsf
# CAvJXVzLicFMMABA/4O99K+1yjIOQpwmiqAjc+gV6FdhwllSH3yQDiK4RMWNAwRu
# bRQHBCk143t7cM3ts09T+5QxkWB3U0iGMJ4rpn43yjH5xwlWmpTlztvd7XlXwyTR
# 8j2Z+8qxe992HmVk34rKdkGnu0qz4AhJBgAEEk2e0oepZvjfigqodQwEMCQsse5t
# cH51HzTDuen/
# =XVKC
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 29 Sep 2023 04:10:35 EDT
# gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg: issuer "armbru@redhat.com "
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com >" [full]
# gpg: aka "Markus Armbruster <armbru@pond.sub.org >" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653
* tag 'pull-shadow-2023-09-29' of https://repo.or.cz/qemu/armbru : (56 commits)
disas/m68k: clean up local variable shadowing
hw/nvme: Clean up local variable shadowing in nvme_ns_init()
softmmu/device_tree: Fixup local variables shadowing
target/riscv: vector_helper: Fixup local variables shadowing
target/riscv: cpu: Fixup local variables shadowing
hw/riscv: opentitan: Fixup local variables shadowing
qemu-nbd: changes towards enabling -Wshadow=local
seccomp: avoid shadowing of 'action' variable
crypto: remove shadowed 'ret' variable
intel_iommu: Fix shadow local variables on "size"
aspeed/timer: Clean up local variable shadowing
aspeed/i3c: Rename variable shadowing a local
aspeed: Clean up local variable shadowing
aspeed/i2c: Clean up local variable shadowing
hw/arm/smmuv3-internal.h: Don't use locals in statement macros
hw/arm/smmuv3.c: Avoid shadowing variable
hw/misc/arm_sysctl.c: Avoid shadowing local variable
hw/intc/arm_gicv3_its: Avoid shadowing variable in do_process_its_cmd()
hw/acpi: changes towards enabling -Wshadow=local
test-throttle: don't shadow 'index' variable in do_test_accounting()
...
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com >
2023-10-02 14:42:30 -04:00
Philippe Mathieu-Daudé
81b8056a41
target/tricore: Clean up local variable shadowing
...
Fix:
target/tricore/translate.c:5016:18: warning: declaration of ‘temp’ shadows a previous local [-Wshadow=compatible-local]
5016 | TCGv temp = tcg_constant_i32(const9);
| ^~~~
target/tricore/translate.c:4958:10: note: shadowed declaration is here
4958 | TCGv temp;
| ^~~~
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-ID: <20230904161235.84651-7-philmd@linaro.org >
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Signed-off-by: Markus Armbruster <armbru@redhat.com >
2023-09-29 10:07:15 +02:00
Bastian Koppelmann
4f79db4750
target/tricore: Fix FTOUZ being ISA v1.3.1 up
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-12-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
1f22db1953
target/tricore: Replace cpu_*_code with translator_*
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-11-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
222ff2d358
target/tricore: Swap src and dst reg for RCRR_INSERT
...
Acked-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-10-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
23fa6f56b3
target/tricore: Fix RCPW/RRPW_INSERT insns for width = 0
...
we would crash if width was 0 for these insns, as tcg_gen_deposit() is
undefined for that case. For TriCore, width = 0 is a mov from the src reg
to the dst reg, so we special case this here.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-9-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
5e0e06d9a2
target/tricore: Implement hptof insn
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1667
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-8-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
815061b9da
target/tricore: Implement ftohp insn
...
reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-7-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
2bdbe35632
target/tricore: Implement FTOU insn
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-5-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Bastian Koppelmann
3e2a5107c5
target/tricore: Implement CRCN insn
...
reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-ID: <20230828112651.522058-3-kbastian@mail.uni-paderborn.de >
2023-09-28 10:45:22 +02:00
Richard Henderson
b0a433be48
target/tricore: Replace gen_cond_w with tcg_gen_negsetcond_tl
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-08-24 11:22:42 -07:00
Michael Tokarev
8b81968c1c
other architectures: spelling fixes
...
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
2023-07-25 17:14:07 +03:00
Bastian Koppelmann
a9c37abdff
target/tricore: Fix ICR.IE offset in RESTORE insn
...
from ISA v1.6.1 onwards the bit position of ICR.IE changed.
ctx->icr_ie_offset contains the correct value for the ISA version used
by the vCPU. We also need to exit this tb here, as we might have enabled
interrupts.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-9-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
19a18edd88
target/tricore: Honour privilege changes on PSW write
...
the CPU can change the privilege level by writing the corresponding bits
in PSW. If this happens all instructions after this 'mtcr' in the TB are
translated with the wrong privilege level. So we have to exit to the
cpu_loop() and start translating again with the new privilege level.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-8-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
57b9c589b6
target/tricore: Implement privilege level for all insns
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-7-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
878d1b6a90
target/tricore: Introduce priv tb flag
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-6-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
d8f466af7c
target/tricore: Indirect jump insns use tcg_gen_lookup_and_goto_ptr()
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-5-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
2dbd73bf17
target/tricore: ENABLE exit to main-loop
...
so we can recognize exceptions after re-enabling interrupts.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reported-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-4-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
1706e04f6e
target/tricore: Introduce DISAS_TARGET_EXIT
...
this replaces all calls to tcg_gen_exit_tb() and moves them to
tricore_tb_stop().
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-3-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
8da70480f5
target/tricore: Fix RR_JLI clobbering reg A[11]
...
if A[r1] == A[11], then we would overwrite the destination address of
the jump with the return address.
Reported-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230621142302.1648383-2-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
6991777ec4
target/tricore: Add CHECK_REG_PAIR() for insn accessing 64 bit regs
...
some insns were not checking if an even index was used to access a 64
bit register. In the worst case that could lead to a buffer overflow as
reported in https://gitlab.com/qemu-project/qemu/-/issues/1698 .
Reported-by: Siqi Chen <coc.cyqh@gmail.com >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230612113245.56667-4-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Siqi Chen
d34b092cab
target/tricore: Fix out-of-bounds index in imask instruction
...
When translating "imask" instruction of Tricore architecture, QEMU did not check whether the register index was out of bounds, resulting in a global-buffer-overflow.
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1698
Reported-by: Siqi Chen <coc.cyqh@gmail.com >
Signed-off-by: Siqi Chen <coc.cyqh@gmail.com >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230612065633.149152-1-coc.cyqh@gmail.com >
Message-Id: <20230612113245.56667-2-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
0b9f9b63c2
target/tricore: Add DISABLE insn variant
...
this variant saves the 'IE' bit to a 'd' register. The 'IE' bitfield
changed from ISA version 1.6.1, so we add icr_ie_offset to DisasContext
as with the other DISABLE insn.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-9-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
3b5d136db6
target/tricore: Implement SYCSCALL insn
...
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1452
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-8-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:54 +02:00
Bastian Koppelmann
4e3377bb5a
target/tricore: Add shuffle insn
...
this is based on code by volumit (https://github.com/volumit/qemu/ ).
Reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
and https://gitlab.com/qemu-project/qemu/-/issues/1452 .
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-7-kbastian@mail.uni-paderborn.de >
2023-06-21 18:09:48 +02:00
Bastian Koppelmann
0eaafe33d0
target/tricore: Add crc32.b insn
...
reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-6-kbastian@mail.uni-paderborn.de >
2023-06-21 17:56:45 +02:00
Bastian Koppelmann
dc0b4368be
target/tricore: Add crc32l.w insn
...
reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-5-kbastian@mail.uni-paderborn.de >
2023-06-21 17:56:45 +02:00
Bastian Koppelmann
73f874d9fe
target/tricore: Add LHA insn
...
reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-4-kbastian@mail.uni-paderborn.de >
2023-06-21 17:56:45 +02:00
Bastian Koppelmann
fd6f446a5e
target/tricore: Add popcnt.w insn
...
reported in https://gitlab.com/qemu-project/qemu/-/issues/1667
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230614100039.1337971-3-kbastian@mail.uni-paderborn.de >
2023-06-21 17:56:45 +02:00
Bastian Koppelmann
343cdf2c9a
target/tricore: Refactor PCXI/ICR register fields
...
starting from ISA version 1.6.1 (previously known as 1.6P/E), some
bitfields in PCXI and ICR have changed. We also refactor these
registers using the register fields API.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1453
Message-Id: <20230526061946.54514-5-kbastian@mail.uni-paderborn.de >
2023-06-07 18:20:45 +02:00
Richard Henderson
dfd1b81274
accel/tcg: Introduce translator_io_start
...
New wrapper around gen_io_start which takes care of the USE_ICOUNT
check, as well as marking the DisasContext to end the TB.
Remove exec/gen-icount.h.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-06-05 12:04:29 -07:00
Richard Henderson
d53106c997
tcg: Pass TCGHelperInfo to tcg_gen_callN
...
In preparation for compiling tcg/ only once, eliminate
the all_helpers array. Instantiate the info structs for
the generic helpers in accel/tcg/, and the structs for
the target-specific helpers in each translate.c.
Since we don't see all of the info structs at startup,
initialize at first use, using g_once_init_* to make
sure we don't race while doing so.
Reviewed-by: Anton Johansson <anjo@rev.ng >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-06-05 12:04:29 -07:00
Richard Henderson
5a48476ec0
target/tricore: Use min/max for saturate
...
Use tcg_constant_i32 for the bounds.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-13 07:03:39 -07:00
Richard Henderson
151293c2fb
target/tricore: Avoid tcg_const_i32
...
All remaining uses are strictly read-only.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-13 06:44:38 -07:00
Richard Henderson
32f948afcf
target/tricore: Drop some temp initialization
...
The temp variables here are always set afterward;
the initialization with a constant was discarded.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-13 06:44:38 -07:00
Richard Henderson
0a47678626
target/tricore: Use setcondi instead of explicit allocation
...
This removes the only use of temp.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-13 06:44:37 -07:00
Richard Henderson
5c48ad758d
target/tricore: Rename t_off10 and use tcg_constant_i32
...
While temp3 could simply be initialized with tcg_constant_i32,
the renaming makes the purpose clearer.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-13 06:44:37 -07:00
Richard Henderson
bf38ca5c9e
target/tricore: Split t_n as constant from temp as variable
...
As required, allocate temp separately.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-13 06:44:37 -07:00
Richard Henderson
08ee498b37
target/tricore: Drop tcg_temp_free
...
Translators are no longer required to free tcg temporaries.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-05 13:44:08 -08:00
Richard Henderson
597f9b2d30
accel/tcg: Pass max_insn to gen_intermediate_code by pointer
...
In preparation for returning the number of insns generated
via the same pointer. Adjust only the prototypes so far.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-03-01 07:33:27 -10:00
Anton Kochkov
77eb0085c8
target/tricore: Fix OPC1_16_SRO_LD_H translation
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Signed-off-by: Eitan Eliahu <eitan_eliahu@hotmail.com >
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/652
Message-Id: <20230112142258.514079-1-anton.kochkov@proton.me >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2023-02-08 10:00:32 +01:00
Bastian Koppelmann
d8b33554d8
target/tricore: Fix OPC2_32_BO_LD_BU_PREINC
...
we were sign extending the result of the load, while the instruction
clearly states that the result should be unsigned.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230202120432.1268-10-kbastian@mail.uni-paderborn.de >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2023-02-08 09:59:38 +01:00
Bastian Koppelmann
a4d5d153c4
target/tricore: Fix OPC2_32_RRRR_DEXTR
...
if cpu_gpr_d[r3] == 0 then we were shifting the lower register to the
right by 32 which is undefined behaviour. In this case the TriCore would
do nothing an just return the higher register cpu_reg_d[r1]. We fixed
that by detecting whether cpu_gpr_d[r3] was zero and cleared the lower
register.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230202120432.1268-8-kbastian@mail.uni-paderborn.de >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2023-02-08 09:59:15 +01:00
Bastian Koppelmann
48bffe7f6b
target/tricore: Fix RRPW_DEXTR
...
if we used const16 == 0 we would crash qemu with the error:
../tcg/tcg-op.c:196: tcg_gen_shri_i32: Assertion `arg2 >= 0 && arg2 < 32' failed
This whole instruction can be handled by 'tcg_gen_extract2_tl' which
takes care of this special case as well.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
Message-Id: <20230202120432.1268-6-kbastian@mail.uni-paderborn.de >
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de >
2023-02-08 09:58:24 +01:00