summaryrefslogtreecommitdiff
path: root/emulators/qemu-devel/files/patch-cpu-exec.c
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2008-07-08 18:42:09 +0000
committerJuergen Lock <nox@FreeBSD.org>2008-07-08 18:42:09 +0000
commit54b840b37a44ced448a8ad0f47740ce08278f643 (patch)
treed4801d39b61ef12632cbef1176de598a3d1658c2 /emulators/qemu-devel/files/patch-cpu-exec.c
parent- New port: plt-scheme (diff)
- Update to 20080620 svn snapshot, which uses the new kqemu-kmod-devel
port that now also works for the 32 bit "qemu" executable on amd64 (if you build with the KQEMU knob on, you have to deinstall the old kqemu-kmod first if it is installed) - Add an ALL_TARGETS knob that, if turned off, omits the remaining dyngen targets, eliminating the need for gcc 3.4 (everything but ppc and sh4 has been converted to tcg in this snapshot) - Add tcg fixes for amd64 guests on i386 hosts (two of three have been committed to qemu svn in the meantime) [1] - Update the pkg-message about kqemu on amd64, and add a note about using nfs with slirp, the latter [2] - Homepage now at http://bellard.org/qemu/ - update links Submitted by: nox [1] Submitted by: joerg [2]
Notes
Notes: svn path=/head/; revision=216547
Diffstat (limited to 'emulators/qemu-devel/files/patch-cpu-exec.c')
-rw-r--r--emulators/qemu-devel/files/patch-cpu-exec.c54
1 files changed, 26 insertions, 28 deletions
diff --git a/emulators/qemu-devel/files/patch-cpu-exec.c b/emulators/qemu-devel/files/patch-cpu-exec.c
index 3971fba6ddfc..708a76a0eaec 100644
--- a/emulators/qemu-devel/files/patch-cpu-exec.c
+++ b/emulators/qemu-devel/files/patch-cpu-exec.c
@@ -1,29 +1,27 @@
---- qemu.orig/cpu-exec.c Mon Jan 14 11:11:02 2008
-+++ qemu/cpu-exec.c Thu Jan 17 23:03:00 2008
-@@ -449,16 +449,18 @@ int cpu_exec(CPUState *env1)
- (env->eflags & IF_MASK || env->hflags & HF_HIF_MASK) &&
- !(env->hflags & HF_INHIBIT_IRQ_MASK)) {
- int intno;
-- svm_check_intercept(SVM_EXIT_INTR);
- env->interrupt_request &= ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ);
- intno = cpu_get_pic_interrupt(env);
-- if (loglevel & CPU_LOG_TB_IN_ASM) {
-- fprintf(logfile, "Servicing hardware INT=0x%02x\n", intno);
-- }
-- do_interrupt(intno, 0, 0, 0, 1);
-- /* ensure that no TB jump will be modified as
-- the program flow was changed */
-- BREAK_CHAIN;
-+ if(intno>=0) {
-+ svm_check_intercept(SVM_EXIT_INTR);
-+ if (loglevel & CPU_LOG_TB_IN_ASM) {
-+ fprintf(logfile, "Servicing hardware INT=0x%02x\n", intno);
-+ }
-+ do_interrupt(intno, 0, 0, 0, 1);
-+ /* ensure that no TB jump will be modified as
-+ the program flow was changed */
-+ BREAK_CHAIN;
-+ }
+Index: qemu/cpu-exec.c
+@@ -394,16 +394,18 @@
+ (env->eflags & IF_MASK &&
+ !(env->hflags & HF_INHIBIT_IRQ_MASK))))) {
+ int intno;
+- svm_check_intercept(SVM_EXIT_INTR);
+ env->interrupt_request &= ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ);
+ intno = cpu_get_pic_interrupt(env);
+- if (loglevel & CPU_LOG_TB_IN_ASM) {
+- fprintf(logfile, "Servicing hardware INT=0x%02x\n", intno);
++ if (intno>=0) {
++ svm_check_intercept(SVM_EXIT_INTR);
++ if (loglevel & CPU_LOG_TB_IN_ASM) {
++ fprintf(logfile, "Servicing hardware INT=0x%02x\n", intno);
++ }
++ do_interrupt(intno, 0, 0, 0, 1);
++ /* ensure that no TB jump will be modified as
++ the program flow was changed */
++ next_tb = 0;
+ }
+- do_interrupt(intno, 0, 0, 0, 1);
+- /* ensure that no TB jump will be modified as
+- the program flow was changed */
+- next_tb = 0;
#if !defined(CONFIG_USER_ONLY)
- } else if ((interrupt_request & CPU_INTERRUPT_VIRQ) &&
- (env->eflags & IF_MASK) && !(env->hflags & HF_INHIBIT_IRQ_MASK)) {
+ } else if ((interrupt_request & CPU_INTERRUPT_VIRQ) &&
+ (env->eflags & IF_MASK) &&