qemu/target/i386/tcg
Mark Cave-Ayland 3973615e7f target/i386: fix size of EBP writeback in gen_enter()
The calculation of FrameTemp is done using the size indicated by mo_pushpop()
before being written back to EBP, but the final writeback to EBP is done using
the size indicated by mo_stacksize().

In the case where mo_pushpop() is MO_32 and mo_stacksize() is MO_16 then the
final writeback to EBP is done using MO_16 which can leave junk in the top
16-bits of EBP after executing ENTER.

Change the writeback of EBP to use the same size indicated by mo_pushpop() to
ensure that the full value is written back.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2198
Message-ID: <20240606095319.229650-5-mark.cave-ayland@ilande.co.uk>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-06-08 10:33:38 +02:00
..
sysemu target/i386: document incorrect semantics of watchpoint following MOV/POP SS 2024-06-08 10:33:38 +02:00
user target/i386: implement SYSCALL/SYSRET in 32-bit emulators 2023-06-26 10:23:56 +02:00
access.c target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
access.h target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
bpt_helper.c compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
cc_helper_template.h.inc target/i386: Rename helper template headers as '.h.inc' 2023-06-13 11:28:58 +02:00
cc_helper.c target/i386: clean up cpu_cc_compute_all 2023-12-29 22:03:02 +01:00
decode-new.c.inc target/i386: cleanup PAUSE helpers 2024-06-08 10:33:38 +02:00
decode-new.h target/i386: fix memory opsize for Mov to/from Seg 2024-06-05 11:01:05 +02:00
emit.c.inc target/i386: fix SP when taking a memory fault during POP 2024-06-08 10:33:38 +02:00
excp_helper.c target/i386: fix implementation of ICEBP 2024-06-08 10:33:37 +02:00
fpu_helper.c target/i386: fix xsave.flat from kvm-unit-tests 2024-06-05 11:01:05 +02:00
helper-tcg.h target/i386: cleanup PAUSE helpers 2024-06-08 10:33:38 +02:00
int_helper.c target/i386: set CC_OP in helpers if they want CC_OP_EFLAGS 2024-05-25 13:28:01 +02:00
mem_helper.c target/i386: Inline cmpxchg16b 2023-02-04 06:19:43 -10:00
meson.build target/i386: Add tcg/access.[ch] 2024-05-26 12:51:50 -07:00
misc_helper.c target/i386: fix INHIBIT_IRQ/TF/RF handling for PAUSE 2024-06-08 10:33:38 +02:00
mpx_helper.c
ops_sse_header.h.inc target/i386: implement SHA instructions 2023-10-25 17:35:07 +02:00
seg_helper.c target/i386: fix pushed value of EFLAGS.RF 2024-06-08 10:33:37 +02:00
seg_helper.h i386: split seg_helper into user-only and sysemu parts 2021-05-10 15:41:52 -04:00
tcg-cpu.c target/i386: Extract x86_cpu_exec_halt() from accel/tcg/ 2024-01-29 21:04:10 +10:00
tcg-cpu.h target/i386: Move X86XSaveArea into TCG 2021-07-06 08:33:51 +02:00
tcg-stub.c
translate.c target/i386: fix size of EBP writeback in gen_enter() 2024-06-08 10:33:38 +02:00