summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-02-01 00:08:16 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-02-01 00:08:16 -0800
commit483c3e96b7e30d3bd788f32c5b421133e71ec476 (patch)
treeaca3537ea9aa680f43124b6dfefbd705aa983845 /src/arch
parent77209689499f2c843bebd9fca300fdd421277b15 (diff)
downloadgem5-483c3e96b7e30d3bd788f32c5b421133e71ec476.tar.xz
X86: Calculate flags based on the actual result.
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/insts/microregop.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/arch/x86/insts/microregop.cc b/src/arch/x86/insts/microregop.cc
index 080926627..2ea975746 100644
--- a/src/arch/x86/insts/microregop.cc
+++ b/src/arch/x86/insts/microregop.cc
@@ -67,6 +67,9 @@ namespace X86ISA
bool subtract) const
{
DPRINTF(X86, "flagMask = %#x\n", flagMask);
+ if (_destRegIdx[0] & (1 << 6)) {
+ _dest >>= 8;
+ }
uint64_t flags = oldFlags & ~flagMask;
if(flagMask & (ECFBit | CFBit))
{