1012 |
DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | |
DESC_G_MASK | DESC_B_MASK | DESC_P_MASK | |
1013 |
DESC_S_MASK | (3 << DESC_DPL_SHIFT) | |
DESC_S_MASK | (3 << DESC_DPL_SHIFT) | |
1014 |
DESC_W_MASK | DESC_A_MASK); |
DESC_W_MASK | DESC_A_MASK); |
1015 |
load_eflags((uint32_t)(env->regs[11]), 0xffffffff); |
load_eflags((uint32_t)(env->regs[11]), TF_MASK | AC_MASK | ID_MASK | |
1016 |
|
IF_MASK | IOPL_MASK | VM_MASK | RF_MASK | NT_MASK); |
1017 |
cpu_x86_set_cpl(env, 3); |
cpu_x86_set_cpl(env, 3); |
1018 |
} else { |
} else { |
1019 |
cpu_x86_load_seg_cache(env, R_CS, selector | 3, |
cpu_x86_load_seg_cache(env, R_CS, selector | 3, |
1210 |
unsigned int den, q, r; |
unsigned int den, q, r; |
1211 |
uint64_t num; |
uint64_t num; |
1212 |
|
|
1213 |
num = EAX | ((uint64_t)EDX << 32); |
num = ((uint32_t)EAX) | ((uint64_t)((uint32_t)EDX) << 32); |
1214 |
den = T0; |
den = T0; |
1215 |
if (den == 0) { |
if (den == 0) { |
1216 |
raise_exception(EXCP00_DIVZ); |
raise_exception(EXCP00_DIVZ); |
1230 |
int den, q, r; |
int den, q, r; |
1231 |
int64_t num; |
int64_t num; |
1232 |
|
|
1233 |
num = EAX | ((uint64_t)EDX << 32); |
num = ((uint32_t)EAX) | ((uint64_t)((uint32_t)EDX) << 32); |
1234 |
den = T0; |
den = T0; |
1235 |
if (den == 0) { |
if (den == 0) { |
1236 |
raise_exception(EXCP00_DIVZ); |
raise_exception(EXCP00_DIVZ); |
3004 |
} |
} |
3005 |
|
|
3006 |
if (env->cr[4] & CR4_OSFXSR_MASK) { |
if (env->cr[4] & CR4_OSFXSR_MASK) { |
3007 |
/* XXX: finish it, endianness */ |
/* XXX: finish it */ |
3008 |
env->mxcsr = ldl(ptr + 0x18); |
env->mxcsr = ldl(ptr + 0x18); |
3009 |
//ldl(ptr + 0x1c); |
//ldl(ptr + 0x1c); |
3010 |
nb_xmm_regs = 8 << data64; |
nb_xmm_regs = 8 << data64; |
3171 |
} |
} |
3172 |
} |
} |
3173 |
|
|
3174 |
static void idiv64(uint64_t *plow, uint64_t *phigh, uint64_t b) |
static void idiv64(uint64_t *plow, uint64_t *phigh, int64_t b) |
3175 |
{ |
{ |
3176 |
int sa, sb; |
int sa, sb; |
3177 |
sa = ((int64_t)*phigh < 0); |
sa = ((int64_t)*phigh < 0); |
3183 |
div64(plow, phigh, b); |
div64(plow, phigh, b); |
3184 |
if (sa ^ sb) |
if (sa ^ sb) |
3185 |
*plow = - *plow; |
*plow = - *plow; |
3186 |
if (sb) |
if (sa) |
3187 |
*phigh = - *phigh; |
*phigh = - *phigh; |
3188 |
} |
} |
3189 |
|
|