summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-10-02 22:05:10 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-10-02 22:05:10 -0700
commitefb309525a098e3f8d5d689670468938eb4ae565 (patch)
tree84331bc3fce967995368821c9cfaf274a12a2d5e /src
parent65c247f21fba8e2a8349d6fdba8ff4661a5d2d89 (diff)
downloadgem5-efb309525a098e3f8d5d689670468938eb4ae565.tar.xz
X86: Allow logic instructions to set ECF as well as CF.
--HG-- extra : convert_revision : 6ac20f069c86c23a8d443a7127afd6015166c00d
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86/isa/microops/regop.isa3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/arch/x86/isa/microops/regop.isa b/src/arch/x86/isa/microops/regop.isa
index 40a441b1e..f161e6825 100644
--- a/src/arch/x86/isa/microops/regop.isa
+++ b/src/arch/x86/isa/microops/regop.isa
@@ -439,10 +439,11 @@ let {{
abstract = True
flag_code = '''
//Don't have genFlags handle the OF or CF bits
- uint64_t mask = CFBit | OFBit;
+ uint64_t mask = CFBit | ECFBit | OFBit;
ccFlagBits = genFlags(ccFlagBits, ext & ~mask, DestReg, psrc1, op2);
//If a logic microop wants to set these, it wants to set them to 0.
ccFlagBits &= ~(CFBit & ext);
+ ccFlagBits &= ~(ECFBit & ext);
ccFlagBits &= ~(OFBit & ext);
'''