1274 |
case 1: |
case 1: |
1275 |
EAX = env->cpuid_version; |
EAX = env->cpuid_version; |
1276 |
EBX = 0; |
EBX = 0; |
1277 |
ECX = 0; |
ECX = env->cpuid_ext_features; |
1278 |
EDX = env->cpuid_features; |
EDX = env->cpuid_features; |
1279 |
break; |
break; |
1280 |
default: |
default: |
1828 |
ESP = (ESP & ~sp_mask) | (sp & sp_mask); |
ESP = (ESP & ~sp_mask) | (sp & sp_mask); |
1829 |
EIP = offset; |
EIP = offset; |
1830 |
} |
} |
1831 |
|
#ifdef USE_KQEMU |
1832 |
|
if (kqemu_is_ok(env)) { |
1833 |
|
env->exception_index = -1; |
1834 |
|
cpu_loop_exit(); |
1835 |
|
} |
1836 |
|
#endif |
1837 |
} |
} |
1838 |
|
|
1839 |
/* real and vm86 mode iret */ |
/* real and vm86 mode iret */ |
2103 |
} else { |
} else { |
2104 |
helper_ret_protected(shift, 1, 0); |
helper_ret_protected(shift, 1, 0); |
2105 |
} |
} |
2106 |
|
#ifdef USE_KQEMU |
2107 |
|
if (kqemu_is_ok(env)) { |
2108 |
|
CC_OP = CC_OP_EFLAGS; |
2109 |
|
env->exception_index = -1; |
2110 |
|
cpu_loop_exit(); |
2111 |
|
} |
2112 |
|
#endif |
2113 |
} |
} |
2114 |
|
|
2115 |
void helper_lret_protected(int shift, int addend) |
void helper_lret_protected(int shift, int addend) |
2116 |
{ |
{ |
2117 |
helper_ret_protected(shift, 0, addend); |
helper_ret_protected(shift, 0, addend); |
2118 |
|
#ifdef USE_KQEMU |
2119 |
|
if (kqemu_is_ok(env)) { |
2120 |
|
CC_OP = CC_OP_EFLAGS; |
2121 |
|
env->exception_index = -1; |
2122 |
|
cpu_loop_exit(); |
2123 |
|
} |
2124 |
|
#endif |
2125 |
} |
} |
2126 |
|
|
2127 |
void helper_sysenter(void) |
void helper_sysenter(void) |
2166 |
DESC_W_MASK | DESC_A_MASK); |
DESC_W_MASK | DESC_A_MASK); |
2167 |
ESP = ECX; |
ESP = ECX; |
2168 |
EIP = EDX; |
EIP = EDX; |
2169 |
|
#ifdef USE_KQEMU |
2170 |
|
if (kqemu_is_ok(env)) { |
2171 |
|
env->exception_index = -1; |
2172 |
|
cpu_loop_exit(); |
2173 |
|
} |
2174 |
|
#endif |
2175 |
} |
} |
2176 |
|
|
2177 |
void helper_movl_crN_T0(int reg) |
void helper_movl_crN_T0(int reg) |