mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-07-04 04:48:18 +00:00
first shot at getting FPIP working, need to remove all FP control instructions from being updated
This commit is contained in:
parent
adec227dad
commit
59b09a71bf
|
@ -991,7 +991,7 @@ void helper_fstenv(CPUX86State *env, target_ulong ptr, int data32)
|
||||||
cpu_stl_data(env, ptr, env->fpuc);
|
cpu_stl_data(env, ptr, env->fpuc);
|
||||||
cpu_stl_data(env, ptr + 4, fpus);
|
cpu_stl_data(env, ptr + 4, fpus);
|
||||||
cpu_stl_data(env, ptr + 8, fptag);
|
cpu_stl_data(env, ptr + 8, fptag);
|
||||||
cpu_stl_data(env, ptr + 12, 0); /* fpip */
|
cpu_stl_data(env, ptr + 12, env->fpip); /* fpip */
|
||||||
cpu_stl_data(env, ptr + 16, 0); /* fpcs */
|
cpu_stl_data(env, ptr + 16, 0); /* fpcs */
|
||||||
cpu_stl_data(env, ptr + 20, 0); /* fpoo */
|
cpu_stl_data(env, ptr + 20, 0); /* fpoo */
|
||||||
cpu_stl_data(env, ptr + 24, 0); /* fpos */
|
cpu_stl_data(env, ptr + 24, 0); /* fpos */
|
||||||
|
|
|
@ -248,6 +248,11 @@ static void gen_update_cc_op(DisasContext *s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void fpu_update_ip(CPUX86State *env)
|
||||||
|
{
|
||||||
|
env->fpip = env->eip;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef TARGET_X86_64
|
#ifdef TARGET_X86_64
|
||||||
|
|
||||||
#define NB_OP_SIZES 4
|
#define NB_OP_SIZES 4
|
||||||
|
@ -6065,6 +6070,7 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s,
|
||||||
gen_exception(s, EXCP07_PREX, pc_start - s->cs_base);
|
gen_exception(s, EXCP07_PREX, pc_start - s->cs_base);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
fpu_update_ip(env);
|
||||||
modrm = cpu_ldub_code(env, s->pc++);
|
modrm = cpu_ldub_code(env, s->pc++);
|
||||||
mod = (modrm >> 6) & 3;
|
mod = (modrm >> 6) & 3;
|
||||||
rm = modrm & 7;
|
rm = modrm & 7;
|
||||||
|
|
Loading…
Reference in a new issue