2358cf77d1
target/m68k: Use TCG_COND_TST{EQ,NE} in gen_fcc_cond
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 23:43:50 +00:00
630ee069c6
target/alpha: Use TCG_COND_TSTNE for gen_fold_mzero
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 23:43:50 +00:00
c47341f1d4
target/alpha: Use TCG_COND_TST{EQ,NE} for CMOVLB{C,S}
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 23:43:50 +00:00
c66ba9786a
target/alpha: Use TCG_COND_TST{EQ,NE} for BLB{C,S}
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20231028194522.245170-33-richard.henderson@linaro.org >
[PMD: Split from bigger patch, part 2/2]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20231108205247.83234-2-philmd@linaro.org >
2024-02-03 23:43:50 +00:00
42c47f631f
target/alpha: Pass immediate value to gen_bcond_internal()
...
Simplify gen_bcond() by passing an immediate value.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20231028194522.245170-33-richard.henderson@linaro.org >
[PMD: Split from bigger patch, part 1/2]
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Message-Id: <20231108205247.83234-1-philmd@linaro.org >
2024-02-03 23:43:50 +00:00
10eab96e1a
Merge tag 'pull-tcg-20240202-2' of https://gitlab.com/rth7680/qemu into staging
...
tests/tcg: Fix multiarch/gdbstub/prot-none.py
hw/core: Convert cpu_mmu_index to a CPUClass hook
tcg/loongarch64: Set vector registers call clobbered
target/sparc: floating-point cleanup
linux-user/aarch64: Add padding before __kernel_rt_sigreturn
# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmW95WkdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV/p+Qf/eVmh5q0pZqcur7ft
# 8FO0wlIz55OfhaA9MIpH7LEIHRKY37Ybebw2K6SPnx4FmPhLkaj4KXPPjT2nzdXw
# J2nQM+TOyxOd18GG8P80qFQ1a72dj8VSIRVAl9T46KuPXS5B7luArImfBlUk/GwV
# Qr/XkOPwVTp05E/ccMJ8PMlcVZw9osHVLqsaFVbsUv/FylTmstzA9c5Gw7/FTfkG
# T2rk+7go+F4IXs/9uQuuFMOpQOZngXE621hnro+qle7j9oarEUVJloAgVn06o59O
# fUjuoKO0aMCr2iQqNJTH7Dnqp5OIzzxUoXiNTOj0EimwWfAcUKthoFO2LGcy1/ew
# wWNR/Q==
# =e3J3
# -----END PGP SIGNATURE-----
# gpg: Signature made Sat 03 Feb 2024 07:04:09 GMT
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org "
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org >" [full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F
* tag 'pull-tcg-20240202-2' of https://gitlab.com/rth7680/qemu : (58 commits)
linux-user/aarch64: Add padding before __kernel_rt_sigreturn
target/sparc: Remove FSR_FTT_NMASK, FSR_FTT_CEXC_NMASK
target/sparc: Split fcc out of env->fsr
target/sparc: Remove cpu_fsr
target/sparc: Split cexc and ftt from env->fsr
target/sparc: Merge check_ieee_exceptions with FPop helpers
target/sparc: Clear cexc and ftt in do_check_ieee_exceptions
target/sparc: Split ver from env->fsr
target/sparc: Introduce cpu_get_fsr, cpu_put_fsr
target/sparc: Remove qt0, qt1 temporaries
target/sparc: Use i128 for Fdmulq
target/sparc: Use i128 for FdTOq, FxTOq
target/sparc: Use i128 for FsTOq, FiTOq
target/sparc: Use i128 for FCMPq, FCMPEq
target/sparc: Use i128 for FqTOd, FqTOx
target/sparc: Use i128 for FqTOs, FqTOi
target/sparc: Use i128 for FADDq, FSUBq, FMULq, FDIVq
target/sparc: Use i128 for FSQRTq
target/sparc: Inline FNEG, FABS
target/sparc: Introduce gen_{load,store}_fpr_Q
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-02-03 13:31:45 +00:00
240f46b9f2
target/sparc: Remove FSR_FTT_NMASK, FSR_FTT_CEXC_NMASK
...
These macros are no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-23-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
d8c5b92f3f
target/sparc: Split fcc out of env->fsr
...
Represent each fcc field separately from the rest of fsr.
This vastly simplifies floating-point comparisons.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-22-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
c9fa8e586b
target/sparc: Remove cpu_fsr
...
Drop this field as a tcg global, loading it explicitly in the
few places required. This means that all FPop helpers may
once again be TCG_CALL_NO_WG.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-21-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
3590f01ed2
target/sparc: Split cexc and ftt from env->fsr
...
These two fields are adjusted by all FPop insns.
Having them separate makes it easier to set without masking.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-20-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
db71391123
target/sparc: Merge check_ieee_exceptions with FPop helpers
...
If an exception is to be raised, the destination fp register
should be unmodified. The current implementation is incorrect,
in that double results will be written back before calling
gen_helper_check_ieee_exceptions, despite the placement of
gen_store_fpr_D, since gen_dest_fpr_D returns cpu_fpr[].
We can simplify the entire implementation by having each
FPOp helper call check_ieee_exceptions. For the moment this
requires that all FPop helpers write to the TCG global cpu_fsr,
so remove TCG_CALL_NO_WG from the DEF_HELPER_FLAGS_*.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-19-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
efeb8b0750
target/sparc: Clear cexc and ftt in do_check_ieee_exceptions
...
Don't do the clearing explicitly before each FPop,
rather do it as part of the rest of exception handling.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-18-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
49bb972513
target/sparc: Split ver from env->fsr
...
This field is read-only. It is easier to store it separately
and merge it only upon read.
While we're at it, use FSR_VER_SHIFT to initialize fpu_version.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-17-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
1ccd6e13cc
target/sparc: Introduce cpu_get_fsr, cpu_put_fsr
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-16-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
41535ca6f4
target/sparc: Remove qt0, qt1 temporaries
...
These are no longer used for passing data to/from helpers.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-15-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
ba21dc991b
target/sparc: Use i128 for Fdmulq
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-14-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
fdc50716a0
target/sparc: Use i128 for FdTOq, FxTOq
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-13-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
0b2a61cc26
target/sparc: Use i128 for FsTOq, FiTOq
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-12-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
f3ceafad5e
target/sparc: Use i128 for FCMPq, FCMPEq
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-11-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
25a5769e3b
target/sparc: Use i128 for FqTOd, FqTOx
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-10-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
d81e3efed9
target/sparc: Use i128 for FqTOs, FqTOi
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-9-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
16bedf89c1
target/sparc: Use i128 for FADDq, FSUBq, FMULq, FDIVq
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-8-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
e41716be4d
target/sparc: Use i128 for FSQRTq
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-7-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
daf457d40f
target/sparc: Inline FNEG, FABS
...
These are simple bit manipulation insns.
Begin using i128 for float128.
Implement FMOVq with do_qq.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-6-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
33ec424535
target/sparc: Introduce gen_{load,store}_fpr_Q
...
Use them for trans_FMOVq.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-5-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
388a646595
target/sparc: Remove gen_dest_fpr_F
...
Replace with tcg_temp_new_i32.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-4-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
54c3e9534f
target/sparc: Use tcg_gen_qemu_{ld, st}_i128 for ASI_M_BFILL
...
Align the operation to the 32-byte cacheline.
Use 2 i128 instead of 4 i64.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-3-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
9827100737
target/sparc: Use tcg_gen_qemu_{ld, st}_i128 for ASI_M_BCOPY
...
Align the operation to the 32-byte cacheline.
Use 2 pair of i128 instead of 8 pair of i32.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Acked-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20231103173841.33651-2-richard.henderson@linaro.org >
2024-02-03 16:46:10 +10:00
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
a120d32097
include/exec: Implement cpu_mmu_index generically
...
For user-only mode, use MMU_USER_IDX.
For system mode, use CPUClass.mmu_index.
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
68283ff4b4
target/xtensa: Populate CPUClass.mmu_index
...
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
eafa0f68c3
target/tricore: Populate CPUClass.mmu_index
...
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
e3547a7d07
target/sparc: Populate CPUClass.mmu_index
...
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
9ba49d7222
target/sh4: Populate CPUClass.mmu_index
...
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
4ef80b271f
target/s390x: Populate CPUClass.mmu_index
...
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
90b7022e69
target/s390x: Split out s390x_env_mmu_index
...
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
ef5cc166da
target/rx: Populate CPUClass.mmu_index
...
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
a5c7797496
target/riscv: Populate CPUClass.mmu_index
...
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
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
d9996d0904
target/riscv: Replace cpu_mmu_index with riscv_env_mmu_index
...
Use the target-specific function name in preference
to the generic name.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
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
7f6f2ebbaa
target/riscv: Rename riscv_cpu_mmu_index to riscv_env_mmu_index
...
Free up the riscv_cpu_mmu_index name for other usage;
emphasize that the argument is 'env'.
Reviewed-by: Alistair Francis <alistair.francis@wdc.com >
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
f331e82c3d
target/ppc: Populate CPUClass.mmu_index
...
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
fb00f730c5
target/ppc: Split out ppc_env_mmu_index
...
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
db8b41941a
target/openrisc: Populate CPUClass.mmu_index
...
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
498c7d78d3
target/nios2: Populate CPUClass.mmu_index
...
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
0efa3dc275
target/mips: Populate CPUClass.mmu_index
...
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
6ebf33c5dc
target/mips: Split out mips_env_mmu_index
...
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
4e999bf419
target/mips: Pass ptw_mmu_idx down from mips_cpu_tlb_fill
...
Rather than adjust env->hflags so that the value computed
by cpu_mmu_index() changes, compute the mmu_idx that we
want directly and pass it down.
Introduce symbolic constants for MMU_{KERNEL,ERL}_IDX.
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
167d6cd0e8
target/microblaze: Populate CPUClass.mmu_index
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:09 +10:00
a5a2d7f64f
target/m68k: Populate CPUClass.mmu_index
...
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:09 +10:00
3f262d2568
target/loongarch: Rename MMU_IDX_*
...
The expected form is MMU_FOO_IDX, not MMU_IDX_FOO.
Rename to match generic code.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-02-03 16:46:07 +10:00