mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-01-11 13:25:28 +00:00
560515941a
Commit 2afbdf8 ("target-i386: exception handling for memory helpers", 2015-09-15) changed tlb_fill's cpu_restore_state+raise_exception_err to raise_exception_err_ra. After this change, the cpu_restore_state and raise_exception_err's cpu_loop_exit are merged into raise_exception_err_ra's cpu_loop_exit_restore. This actually fixed some bugs, but when SVM is enabled there is a second path from raise_exception_err_ra to cpu_loop_exit. This is the VMEXIT path, and now cpu_vmexit is called without a cpu_restore_state before. The fix is to pass the retaddr to cpu_vmexit (via cpu_svm_check_intercept_param). All helpers can now use GETPC() to pass the correct retaddr, too. Backports commit 823fb688ebc52a7d79c1308acb28c92b56820167 from qemu |
||
---|---|---|
.. | ||
arch_memory_mapping.c | ||
bpt_helper.c | ||
cc_helper.c | ||
cc_helper_template.h | ||
cpu-qom.h | ||
cpu.c | ||
cpu.h | ||
excp_helper.c | ||
fpu_helper.c | ||
helper.c | ||
helper.h | ||
int_helper.c | ||
Makefile.objs | ||
mem_helper.c | ||
misc_helper.c | ||
mpx_helper.c | ||
ops_sse.h | ||
ops_sse_header.h | ||
seg_helper.c | ||
shift_helper_template.h | ||
smm_helper.c | ||
svm.h | ||
svm_helper.c | ||
TODO | ||
topology.h | ||
translate.c | ||
unicorn.c | ||
unicorn.h |