diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2009-08-05 02:56:12 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2009-08-05 02:56:12 -0700 |
commit | df2c862a078e4060017b150656a473b2fb84598e (patch) | |
tree | 6921f9689cf0218a7066dbcd1d869804edbba900 | |
parent | f5c21eaa1a9a1305773eb62e0594efa250cbc792 (diff) | |
download | gem5-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.
-rw-r--r-- | src/arch/x86/insts/microregop.cc | 2 |
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) { |