summaryrefslogtreecommitdiff
path: root/src/arch/x86/insts
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-08-05 02:56:12 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-08-05 02:56:12 -0700
commitdf2c862a078e4060017b150656a473b2fb84598e (patch)
tree6921f9689cf0218a7066dbcd1d869804edbba900 /src/arch/x86/insts
parentf5c21eaa1a9a1305773eb62e0594efa250cbc792 (diff)
downloadgem5-df2c862a078e4060017b150656a473b2fb84598e.tar.xz
X86: Fix how the parity flag is computed.
It's only for the lowest order byte, and I had the polarity wrong.
Diffstat (limited to 'src/arch/x86/insts')
-rw-r--r--src/arch/x86/insts/microregop.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arch/x86/insts/microregop.cc b/src/arch/x86/insts/microregop.cc
index 2edd3ba87..5982dff7a 100644
--- a/src/arch/x86/insts/microregop.cc
+++ b/src/arch/x86/insts/microregop.cc
@@ -78,7 +78,7 @@ namespace X86ISA
if(subtract)
flags ^= (flagMask & (ECFBit | CFBit));
}
- if(flagMask & PFBit && findParity(dataSize*8, _dest))
+ if(flagMask & PFBit && !findParity(8, _dest))
flags |= PFBit;
if(flagMask & AFBit)
{