diff options
authorAvi Kivity <>2009-04-06 10:47:06 +0300
committerAvi Kivity <>2009-04-06 10:47:06 +0300
commit67afa42dada0e8eab8b88bcc12447bddfccad5f7 (patch)
tree25d0be082487757dd67a932345bc293c75f87eed /cpu-exec.c
parentkvm: Update .gitignore (diff)
parentRemove WIN32 guard around -k (diff)
Merge commit 'qemu-svn/trunk'
* commit 'qemu-svn/trunk': (38 commits) Remove WIN32 guard around -k Add new command line option -singlestep for tcg single stepping. tcg/x86_64: optimize register allocation order stop dirty tracking just at the end of migration (Glauber Costa) create qemu_file_set_error (Glauber Costa) propagate error on failed completion (Glauber Costa) Disable qemu-io on Win32 Add files not included in previous commit. Fix savevm after BDRV_FILE size enforcement Fix the build for --disable-aio gdbstub: Rework configuration via command line and monitor (Jan Kiszka) Make `-icount' help fit 80 chars screen width (Robert Riebisch) qemu-io - an I/O path exerciser (Christoph Hellwig) Fix display breakage when resizing the screen (v2) (Avi Kivity) Fix some win32 compile warnings Make binary stripping conditional (Riku Voipio) qcow2: fix image creation for large, > ~2TB, images (Chris Wright) pci_add storage: fix error handling for 'if' parameter (Eduardo Habkost) build system: clean qemu-options.texi and gdbstub-xml.c (Jan Kiszka) build system: silent generation of doc files and qemu-options.h (Jan Kiszka) ... Conflicts: qemu/ qemu/hw/vga.c qemu/vl.c Signed-off-by: Avi Kivity <>
Diffstat (limited to 'cpu-exec.c')
1 files changed, 10 insertions, 0 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index bf42318fb..d724464d1 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -258,6 +258,11 @@ int cpu_exec(CPUState *env1)
/* prepare setjmp context for exception handling */
for(;;) {
if (setjmp(env->jmp_env) == 0) {
+#if defined(__sparc__) && !defined(HOST_SOLARIS)
+#undef env
+ env = cpu_single_env;
+#define env cpu_single_env
env->current_tb = NULL;
/* if an exception is pending, we execute it here */
if (env->exception_index >= 0) {
@@ -403,6 +408,11 @@ int cpu_exec(CPUState *env1)
env->interrupt_request &= ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ);
intno = cpu_get_pic_interrupt(env);
qemu_log_mask(CPU_LOG_TB_IN_ASM, "Servicing hardware INT=0x%02x\n", intno);
+#if defined(__sparc__) && !defined(HOST_SOLARIS)
+#undef env
+ env = cpu_single_env;
+#define env cpu_single_env
do_interrupt(intno, 0, 0, 0, 1);
/* ensure that no TB jump will be modified as
the program flow was changed */