summaryrefslogtreecommitdiffstats
path: root/cpu-exec.c
diff options
context:
space:
mode:
authorPeter Maydell2015-09-11 19:01:56 +0200
committerPeter Maydell2015-09-11 19:01:56 +0200
commit8f6e82e4ecec9bc2726725275a138bc30f3ffc81 (patch)
treeb4407948b8bd54589c0b130512f39441a86952bb /cpu-exec.c
parentscripts/qemu-gdb: Add brief comment describing usage (diff)
parentcpu-exec: introduce loop exit with restore function (diff)
downloadqemu-8f6e82e4ecec9bc2726725275a138bc30f3ffc81.tar.gz
qemu-8f6e82e4ecec9bc2726725275a138bc30f3ffc81.tar.xz
qemu-8f6e82e4ecec9bc2726725275a138bc30f3ffc81.zip
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20150911' into staging
queued tcg related patches # gpg: Signature made Fri 11 Sep 2015 16:17:00 BST using RSA key ID 4DD0279B # gpg: Good signature from "Richard Henderson <rth7680@gmail.com>" # gpg: aka "Richard Henderson <rth@redhat.com>" # gpg: aka "Richard Henderson <rth@twiddle.net>" * remotes/rth/tags/pull-tcg-20150911: cpu-exec: introduce loop exit with restore function softmmu: remove now unused functions softmmu: add helper function to pass through retaddr tlb: Add "ifetch" argument to cpu_mmu_index() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index 713540fc8f..6b6942de69 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -134,6 +134,15 @@ void cpu_loop_exit(CPUState *cpu)
siglongjmp(cpu->jmp_env, 1);
}
+void cpu_loop_exit_restore(CPUState *cpu, uintptr_t pc)
+{
+ if (pc) {
+ cpu_restore_state(cpu, pc);
+ }
+ cpu->current_tb = NULL;
+ siglongjmp(cpu->jmp_env, 1);
+}
+
/* exit the current TB from a signal handler. The host registers are
restored in a state compatible with the CPU emulator
*/