Revision ecada8a2
b/target-i386/helper.c | ||
---|---|---|
2328 | 2328 |
void helper_rdtsc(void) |
2329 | 2329 |
{ |
2330 | 2330 |
uint64_t val; |
2331 |
|
|
2331 |
|
|
2332 |
if ((env->cr[4] & CR4_TSD_MASK) && ((env->hflags & HF_CPL_MASK) != 0)) { |
|
2333 |
raise_exception(EXCP0D_GPF); |
|
2334 |
} |
|
2332 | 2335 |
val = cpu_get_tsc(env); |
2333 | 2336 |
EAX = (uint32_t)(val); |
2334 | 2337 |
EDX = (uint32_t)(val >> 32); |
b/target-i386/translate.c | ||
---|---|---|
4909 | 4909 |
gen_op_movl_T1_imu(offset); |
4910 | 4910 |
} |
4911 | 4911 |
goto do_lcall; |
4912 |
case 0xe9: /* jmp */ |
|
4912 |
case 0xe9: /* jmp im */
|
|
4913 | 4913 |
if (dflag) |
4914 | 4914 |
tval = (int32_t)insn_get(s, OT_LONG); |
4915 | 4915 |
else |
... | ... | |
5366 | 5366 |
} |
5367 | 5367 |
break; |
5368 | 5368 |
case 0x131: /* rdtsc */ |
5369 |
gen_jmp_im(pc_start - s->cs_base); |
|
5369 | 5370 |
gen_op_rdtsc(); |
5370 | 5371 |
break; |
5371 | 5372 |
case 0x134: /* sysenter */ |
Also available in: Unified diff