| 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) |