Richard Henderson
f8498e084e
linux-user: Move get_elf_base_platform to mips/elfload.c
...
Pass in CPUState; define HAVE_ELF_BASE_PLATFORM.
Since this was the only instance of ELF_BASE_PLATFORM, go ahead and
provide the stub definition for other platforms.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-08-28 06:39:25 +10:00
Richard Henderson
48004ab058
linux-user: Move get_elf_hwcap to mips/elfload.c
...
Change the return type to abi_ulong, and pass in the cpu.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-08-28 06:39:25 +10:00
Richard Henderson
af880af8d4
linux-user: Move get_elf_cpu_model to target/elfload.c
...
Rename from cpu_get_model to emphasize that this is an elf-specific
function. Declare the function once in loader.h.
This frees up target_elf.h for other uses.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-08-28 06:39:25 +10:00
Richard Henderson
58afe4cfe9
linux-user: Create target/elfload.c files
...
Prepare to split the main linux-user/elfload.c.
Create empty files for each target, and add the common build rule.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-08-28 06:39:25 +10:00
Peter Maydell
4ae7d11b70
Merge tag 'pull-tcg-20240922' of https://gitlab.com/rth7680/qemu into staging
...
target/ppc: Fix lxvx/stxvx facility check
linux-user: update syscall_nr.h to Linux v6.10
linux-user: update syscall.tbl to Linux v6.11
tcg: Fix iteration step in 32-bit gvec operation
tcg: Propagate new TCGOp to add_as_label_use
tcg/*: Do not expand cmp_vec, cmpsel_vec early
tcg/optimize: Fold movcond with true and false values identical
tcg/optimize: Optimize cmp_vec and cmpsel_vec
tcg/optimize: Optimize bitsel_vec
tcg/i386: Optimize cmpsel with constant 0 operand 3.
tcg/i386: Implement cmp_vec with avx512 insns
tcg/i386: Implement cmpsel_vec with avx512 insns
tcg/i386: Implement vector TST{EQ,NE} for avx512
tcg/ppc: Implement cmpsel_vec and optimize with constant 0/-1 arguments
tcg/s390x: Implement cmpsel_vec and optimize with constant 0/-1 arguments
# -----BEGIN PGP SIGNATURE-----
#
# iQFQBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmbwBsIdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV/bzwf40V8fsRhfc8u/k2Xw
# +bXyfyX7ydgB+82YoO71+Wy15ntmYmbL/6O9kGuJXWX8HRDrAR8Js9zDgveysw5m
# m/EG+XAbVjYhjaoaaz2nfr+5auQoos9NoCji3s3UJln6sCuZ2Enl0DTFluoHZfgr
# /YVAghJ4dwH0hfzO9kmsKmJ9I19HugMMN4dNvEcjQyDDUhgGGjkUaRtGNxwuiwuf
# ArL2XhFauXgloryDmpUKQ0BJJ0t8rdPlaRJ8dHqJUnJwav0TW3QVXbrs8gOkmmbg
# 9plYTC9DlTguQobvapCDVjiGy/6yuSF/AUpcdQbTRtTi3BrzhTydfLlOtI64GtaQ
# OBKd
# =ID/g
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 22 Sep 2024 13:00:02 BST
# 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-20240922' of https://gitlab.com/rth7680/qemu : (31 commits)
linux-user: update syscall.tbl to Linux v6.11
linux-user,loongarch: move to syscalltbl file
linux-user,hexagon: move to syscalltbl file
linux-user,riscv: move to syscalltbl file
linux-user,openrisc: move to syscalltbl file
linux-user,aarch64: move to syscalltbl file
linux-user: update syscall.tbl to Linux v6.10
linux-user, mips: update syscall-args-o32.c.inc to Linux v6.10
linux-user: update syscall_nr.h to Linux v6.10
target/ppc: Fix lxvx/stxvx facility check
tcg/s390x: Optimize cmpsel with constant 0/-1 arguments
tcg/s390x: Implement cmpsel_vec
tcg/ppc: Optimize cmpsel with constant 0/-1 arguments
tcg/ppc: Implement cmpsel_vec
tcg/i386: Implement vector TST{EQ,NE} for avx512
tcg/i386: Implement cmpsel_vec with avx512 insns
tcg/i386: Add predicate parameters to tcg_out_evex_opc
tcg/i386: Implement cmp_vec with avx512 insns
tcg/i386: Optimize cmpsel with constant 0 operand 3.
tcg/optimize: Optimize bitsel_vec
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2024-09-27 10:32:29 +01:00
Laurent Vivier and Richard Henderson
e12fbc36f9
linux-user: update syscall.tbl to Linux v6.10
...
Updated running scripts/update-syscalltbl.sh
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Message-ID: <20240918074256.720617-4-laurent@vivier.eu >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2024-09-22 09:27:12 +02:00
Philippe Mathieu-Daudé and Michael Tokarev
06e2329636
license: Update deprecated SPDX tag GPL-2.0 to GPL-2.0-only
...
The 'GPL-2.0' license identifier has been deprecated since license
list version 3.0 [1] and replaced by the 'GPL-2.0-only' tag [2].
[1] https://spdx.org/licenses/GPL-2.0.html
[2] https://spdx.org/licenses/GPL-2.0-only.html
Mechanical patch running:
$ sed -i -e s/GPL-2.0/GPL-2.0-only/ \
$(git grep -l 'SPDX-License-Identifier: GPL-2.0[ $]' \
| egrep -v '^linux-headers|^include/standard-headers')
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru >
2024-09-20 10:11:59 +03:00
Philippe Mathieu-Daudé
e922abf5c0
linux-user/mips: Select Loongson CPU for Loongson binaries
...
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240814133928.6746-5-philmd@linaro.org >
2024-08-20 00:49:13 +02:00
Philippe Mathieu-Daudé
309ce6af94
linux-user/mips: Select MIPS64R2-generic for Rel2 binaries
...
Cc: YunQiang Su <syq@debian.org >
Reported-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240814133928.6746-4-philmd@linaro.org >
2024-08-20 00:49:13 +02:00
Philippe Mathieu-Daudé
1e5a7c57a5
linux-user/mips: Select Octeon68XX CPU for Octeon binaries
...
The Octeon68XX CPU is available since commit 9a6046a655
("target/mips: introduce Cavium Octeon CPU model").
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1722
Reported-by: Johnathan Hữu Trí <nhtri2003@gmail.com >
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240814133928.6746-3-philmd@linaro.org >
2024-08-20 00:49:05 +02:00
Philippe Mathieu-Daudé
f7e3d7521b
linux-user/mips: Do not try to use removed R5900 CPU
...
R5900 emulation was removed in commit 823f2897bd .
Remove it from ELF parsing in order to avoid:
$ qemu-mipsn32 ./test5900
qemu-mipsn32: unable to find CPU model 'R5900'
This reverts commit 4d9e5a0eb7 .
Fixes: 823f2897bd ("target/mips: Disable R5900 support")
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20240814133928.6746-2-philmd@linaro.org >
2024-08-20 00:47:57 +02:00
Richard Henderson
121c8dd69d
linux-user: Split out cpu/target_proc.h
...
Move the various open_cpuinfo functions into new files.
Move the m68k open_hardware function as well.
All other guest architectures get a boilerplate empty file.
Tested-by: Helge Deller <deller@gmx.de >
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-09-01 13:33:09 -07:00
Richard Henderson
492fe4e754
linux-user: Split TARGET_MAP_* out of syscall_defs.h
...
Move the values into the per-target target_mman.h headers
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20230707204054.8792-7-richard.henderson@linaro.org >
2023-07-15 08:02:32 +01:00
Ilya Leoshkevich and Laurent Vivier
9f22020b91
linux-user: Provide MADV_* definitions
...
Provide MADV_* definitions using target_mman.h header, similar to what
kernel does. Most architectures use the same values, with the exception
of alpha and hppa.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220906000839.1672934-2-iii@linux.ibm.com >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-09-27 09:30:09 +02:00
Serge Belyshev and Laurent Vivier
b13e49bc86
linux-user: Move generic TARGET_RLIMIT* definitions to generic/target_resource.h
...
Signed-off-by: Serge Belyshev <belyshev@depni.sinp.msu.ru >
Message-Id: <87ee4ql3yk.fsf_-_@depni.sinp.msu.ru >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-02-01 08:01:38 +01:00
Richard Henderson and Laurent Vivier
87e9bf2323
linux-user: Split out do_prctl and subroutines
...
Since the prctl constants are supposed to be generic, supply
any that are not provided by the host.
Split out subroutines for PR_GET_FP_MODE, PR_SET_FP_MODE,
PR_GET_VL, PR_SET_VL, PR_RESET_KEYS, PR_SET_TAGGED_ADDR_CTRL,
PR_GET_TAGGED_ADDR_CTRL. Return EINVAL for guests that do
not support these options rather than pass them on to the host.
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20211227150127.2659293-2-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-01-06 11:40:52 +01:00
Song Gao and Laurent Vivier
c1e8e3a746
linux-user: Remove TARGET_SIGSTKSZ
...
TARGET_SIGSTKSZ is not used, we should remove it.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1637893388-10282-4-git-send-email-gaosong@loongson.cn >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-01-06 11:40:52 +01:00
Song Gao and Laurent Vivier
f9d0707182
linux-user: target_syscall.h remove definition TARGET_MINSIGSTKSZ
...
TARGET_MINSIGSTKSZ has been defined in generic/signal.h
or target_signal.h, We don't need to define it again.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <1637893388-10282-3-git-send-email-gaosong@loongson.cn >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2022-01-06 11:40:52 +01:00
Richard Henderson and Laurent Vivier
317a33b6eb
linux-user/mips: Implement setup_sigtramp
...
Create and record the two signal trampolines.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210929130553.121567-16-richard.henderson@linaro.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-10-01 12:03:48 +02:00
Laurent Vivier
2fa4ad3f90
linux-user: update syscall.tbl to Linux v5.13
...
Updated running scripts/update-syscalltbl.sh
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
Message-Id: <20210708215756.268805-4-laurent@vivier.eu >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-07-13 13:59:59 +02:00
Philippe Mathieu-Daudé and Laurent Vivier
f317c0ee57
linux-user/mips: Move errno definitions to 'target_errno_defs.h'
...
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210708170550.1846343-7-f4bug@amsat.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-07-12 21:53:35 +02:00
Philippe Mathieu-Daudé and Laurent Vivier
8f968b6a24
linux-user: Extract target errno to 'target_errno_defs.h'
...
We want to access the target errno indepently of the rest of the
linux-user code. Move the header containing the generic errno
definitions ('errno_defs.h') to 'generic/target_errno_defs.h',
create a new 'target_errno_defs.h' in each target which itself
includes 'generic/target_errno_defs.h'.
Suggested-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20210708170550.1846343-4-f4bug@amsat.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-07-12 21:53:35 +02:00
Philippe Mathieu-Daudé and Laurent Vivier
bc3359f739
linux-user/mips: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
...
Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210704183755.655002-4-f4bug@amsat.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-07-07 21:26:46 +02:00
Fredrik Noring and Laurent Vivier
b8f91fd49c
linux-user/mips: Support the n32 ABI for the R5900
...
Recognise the R5900, which reports itself as MIPS III, as a 64-bit CPU
supporting the n32 ABI.
Signed-off-by: Fredrik Noring <noring@nocrew.org >
Reviewed-by: Laurent Vivier <laurent@vivier.eu >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <5bea109f0c140da6a821aa7f9705d4b3717e86dc.1541701393.git.noring@nocrew.org >
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-02-15 12:10:03 +01:00
Chen Gang and Laurent Vivier
fba087458d
linux-user: target: signal: Support TARGET_SS_AUTODISARM
...
Add definitions to pass building.
Signed-off-by: Chen Gang <chengang@emindsoft.com.cn >
Message-Id: <20201008043105.21058-1-chengang@emindsoft.com.cn >
[lv: added the definitions in linux-user/generic/signal.h too]
Signed-off-by: Laurent Vivier <laurent@vivier.eu >
2021-02-13 22:50:50 +01:00