Revision 4a1418e0 target-i386/op_helper.c
b/target-i386/op_helper.c | ||
---|---|---|
1111 | 1111 |
env->eflags |= IF_MASK; |
1112 | 1112 |
cpu_x86_set_cpl(env, 3); |
1113 | 1113 |
} |
1114 |
#ifdef CONFIG_KQEMU |
|
1115 |
if (kqemu_is_ok(env)) { |
|
1116 |
if (env->hflags & HF_LMA_MASK) |
|
1117 |
CC_OP = CC_OP_EFLAGS; |
|
1118 |
env->exception_index = -1; |
|
1119 |
cpu_loop_exit(); |
|
1120 |
} |
|
1121 |
#endif |
|
1122 | 1114 |
} |
1123 | 1115 |
#endif |
1124 | 1116 |
|
... | ... | |
2506 | 2498 |
SET_ESP(sp, sp_mask); |
2507 | 2499 |
EIP = offset; |
2508 | 2500 |
} |
2509 |
#ifdef CONFIG_KQEMU |
|
2510 |
if (kqemu_is_ok(env)) { |
|
2511 |
env->exception_index = -1; |
|
2512 |
cpu_loop_exit(); |
|
2513 |
} |
|
2514 |
#endif |
|
2515 | 2501 |
} |
2516 | 2502 |
|
2517 | 2503 |
/* real and vm86 mode iret */ |
... | ... | |
2792 | 2778 |
helper_ret_protected(shift, 1, 0); |
2793 | 2779 |
} |
2794 | 2780 |
env->hflags2 &= ~HF2_NMI_MASK; |
2795 |
#ifdef CONFIG_KQEMU |
|
2796 |
if (kqemu_is_ok(env)) { |
|
2797 |
CC_OP = CC_OP_EFLAGS; |
|
2798 |
env->exception_index = -1; |
|
2799 |
cpu_loop_exit(); |
|
2800 |
} |
|
2801 |
#endif |
|
2802 | 2781 |
} |
2803 | 2782 |
|
2804 | 2783 |
void helper_lret_protected(int shift, int addend) |
2805 | 2784 |
{ |
2806 | 2785 |
helper_ret_protected(shift, 0, addend); |
2807 |
#ifdef CONFIG_KQEMU |
|
2808 |
if (kqemu_is_ok(env)) { |
|
2809 |
env->exception_index = -1; |
|
2810 |
cpu_loop_exit(); |
|
2811 |
} |
|
2812 |
#endif |
|
2813 | 2786 |
} |
2814 | 2787 |
|
2815 | 2788 |
void helper_sysenter(void) |
... | ... | |
2882 | 2855 |
} |
2883 | 2856 |
ESP = ECX; |
2884 | 2857 |
EIP = EDX; |
2885 |
#ifdef CONFIG_KQEMU |
|
2886 |
if (kqemu_is_ok(env)) { |
|
2887 |
env->exception_index = -1; |
|
2888 |
cpu_loop_exit(); |
|
2889 |
} |
|
2890 |
#endif |
|
2891 | 2858 |
} |
2892 | 2859 |
|
2893 | 2860 |
#if defined(CONFIG_USER_ONLY) |
... | ... | |
3211 | 3178 |
val = env->kernelgsbase; |
3212 | 3179 |
break; |
3213 | 3180 |
#endif |
3214 |
#ifdef CONFIG_KQEMU |
|
3215 |
case MSR_QPI_COMMBASE: |
|
3216 |
if (env->kqemu_enabled) { |
|
3217 |
val = kqemu_comm_base; |
|
3218 |
} else { |
|
3219 |
val = 0; |
|
3220 |
} |
|
3221 |
break; |
|
3222 |
#endif |
|
3223 | 3181 |
case MSR_MTRRphysBase(0): |
3224 | 3182 |
case MSR_MTRRphysBase(1): |
3225 | 3183 |
case MSR_MTRRphysBase(2): |
Also available in: Unified diff