]> git.proxmox.com Git - mirror_qemu.git/commit
target/i386: implement SYSCALL/SYSRET in 32-bit emulators
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 16 Jun 2023 23:01:29 +0000 (01:01 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 26 Jun 2023 08:23:56 +0000 (10:23 +0200)
commit63fd8ef080351357c0cb0644ed63fd3e2a8833a8
tree91481e0107c3a469373c997a838c7796d71fd2f5
parent6750485bf42a9917a29487aec899687669104e07
target/i386: implement SYSCALL/SYSRET in 32-bit emulators

AMD supports both 32-bit and 64-bit SYSCALL/SYSRET, but the TCG only
exposes it for 64-bit targets.  For system emulation just reuse the
helper; for user-mode emulation the ABI is the same as "int $80".

The BSDs does not support any fast system call mechanism in 32-bit
mode so add to bsd-user the same stub that FreeBSD has for 64-bit
compatibility mode.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
bsd-user/i386/target_arch_cpu.h
linux-user/i386/cpu_loop.c
target/i386/cpu.c
target/i386/helper.h
target/i386/tcg/seg_helper.c
target/i386/tcg/sysemu/seg_helper.c
target/i386/tcg/translate.c
target/i386/tcg/user/seg_helper.c