diff options
author | Doug Evans <dje@google.com> | 2016-12-06 23:06:30 +0000 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-12-22 16:01:04 +0100 |
commit | c52ab08aee6f7d4717fc6b517174043126bd302f (patch) | |
tree | 59715b2881805e60a3e12b49083c08faba7efaff /target/i386/helper.h | |
parent | 6053a86fe7bd3d5b07b49dae6c05f2cd0d44e687 (diff) |
target-i386: Fix eflags.TF/#DB handling of syscall/sysret insns
The syscall and sysret instructions behave a bit differently:
TF is checked after the instruction completes.
This allows the o/s to disable #DB at a syscall by adding TF to FMASK.
And then when the sysret is executed the #DB is taken "as if" the
syscall insn just completed.
Signed-off-by: Doug Evans <dje@google.com>
Message-Id: <94eb2c0bfa1c6a9fec0543057483@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/i386/helper.h')
-rw-r--r-- | target/i386/helper.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/target/i386/helper.h b/target/i386/helper.h index 4e859eba9d..bd9b2cf677 100644 --- a/target/i386/helper.h +++ b/target/i386/helper.h @@ -79,6 +79,7 @@ DEF_HELPER_2(cmpxchg16b_unlocked, void, env, tl) DEF_HELPER_2(cmpxchg16b, void, env, tl) #endif DEF_HELPER_1(single_step, void, env) +DEF_HELPER_1(rechecking_single_step, void, env) DEF_HELPER_1(cpuid, void, env) DEF_HELPER_1(rdtsc, void, env) DEF_HELPER_1(rdtscp, void, env) |