mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-07-01 11:48:23 +00:00
target-i386: Update BNDSTATUS for exceptions raised by BOUND
Backports commit 75d14edcf5fd9d5bb614554539799abaaeab3166 from qemu
This commit is contained in:
parent
554c41f05f
commit
a02626afe7
|
@ -91,6 +91,9 @@ void helper_boundw(CPUX86State *env, target_ulong a0, int v)
|
||||||
high = cpu_ldsw_data_ra(env, a0 + 2, GETPC());
|
high = cpu_ldsw_data_ra(env, a0 + 2, GETPC());
|
||||||
v = (int16_t)v;
|
v = (int16_t)v;
|
||||||
if (v < low || v > high) {
|
if (v < low || v > high) {
|
||||||
|
if (env->hflags & HF_MPX_EN_MASK) {
|
||||||
|
env->bndcs_regs.sts = 0;
|
||||||
|
}
|
||||||
raise_exception_ra(env, EXCP05_BOUND, GETPC());
|
raise_exception_ra(env, EXCP05_BOUND, GETPC());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,6 +105,9 @@ void helper_boundl(CPUX86State *env, target_ulong a0, int v)
|
||||||
low = cpu_ldl_data_ra(env, a0, GETPC());
|
low = cpu_ldl_data_ra(env, a0, GETPC());
|
||||||
high = cpu_ldl_data_ra(env, a0 + 4, GETPC());
|
high = cpu_ldl_data_ra(env, a0 + 4, GETPC());
|
||||||
if (v < low || v > high) {
|
if (v < low || v > high) {
|
||||||
|
if (env->hflags & HF_MPX_EN_MASK) {
|
||||||
|
env->bndcs_regs.sts = 0;
|
||||||
|
}
|
||||||
raise_exception_ra(env, EXCP05_BOUND, GETPC());
|
raise_exception_ra(env, EXCP05_BOUND, GETPC());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue