summaryrefslogtreecommitdiff
path: root/target-i386
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2009-12-14 12:26:27 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-12-18 11:26:25 -0600
commitd46272c774a94a8b2f0849703070dbcd93057f50 (patch)
tree0c5c26203c52e445631ca3b421d605437d43038b /target-i386
parent31827373f03b0ff1550d45ddef0ca1305a2ae70d (diff)
downloadqemu-d46272c774a94a8b2f0849703070dbcd93057f50.tar.gz
target-i386: Fix evaluation of DR7 register
hw_breakpoint_type and hw_breakpoint_len used the wrong index multiplier to extract type and len. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'target-i386')
-rw-r--r--target-i386/cpu.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index afb4da5ea4..f3834b3076 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -835,12 +835,12 @@ static inline int hw_breakpoint_enabled(unsigned long dr7, int index)
static inline int hw_breakpoint_type(unsigned long dr7, int index)
{
- return (dr7 >> (DR7_TYPE_SHIFT + (index * 2))) & 3;
+ return (dr7 >> (DR7_TYPE_SHIFT + (index * 4))) & 3;
}
static inline int hw_breakpoint_len(unsigned long dr7, int index)
{
- int len = ((dr7 >> (DR7_LEN_SHIFT + (index * 2))) & 3);
+ int len = ((dr7 >> (DR7_LEN_SHIFT + (index * 4))) & 3);
return (len == 2) ? 8 : len + 1;
}