diff -r c261b42c18bf -r 5752699105b1 src/arch/x86/insts/microfpop.hh --- a/src/arch/x86/insts/microfpop.hh Sat Apr 21 15:12:00 2012 -0500 +++ b/src/arch/x86/insts/microfpop.hh Sat Apr 21 15:15:16 2012 -0500 @@ -56,18 +56,20 @@ const RegIndex dest; const uint8_t dataSize; const int8_t spm; + const uint8_t cc; + const uint16_t ext; // Constructor FpOp(ExtMachInst _machInst, const char *mnem, const char *_instMnem, uint64_t setFlags, InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest, - uint8_t _dataSize, int8_t _spm, + uint8_t _dataSize, int8_t _spm, uint8_t _cc, uint16_t _ext, OpClass __opClass) : X86MicroopBase(_machInst, mnem, _instMnem, setFlags, __opClass), src1(_src1.idx), src2(_src2.idx), dest(_dest.idx), - dataSize(_dataSize), spm(_spm) + dataSize(_dataSize), spm(_spm), cc(_cc), ext(_ext) {} /* //Figure out what the condition code flags should be. diff -r c261b42c18bf -r 5752699105b1 src/arch/x86/isa/microops/fpop.isa --- a/src/arch/x86/isa/microops/fpop.isa Sat Apr 21 15:12:00 2012 -0500 +++ b/src/arch/x86/isa/microops/fpop.isa Sat Apr 21 15:15:16 2012 -0500 @@ -78,7 +78,7 @@ %(class_name)s(ExtMachInst _machInst, const char * instMnem, uint64_t setFlags, InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest, - uint8_t _dataSize, int8_t _spm); + uint8_t _dataSize, int8_t _spm, uint8_t _cc, uint16_t _ext); %(BasicExecDeclare)s }; @@ -88,9 +88,9 @@ inline %(class_name)s::%(class_name)s( ExtMachInst machInst, const char * instMnem, uint64_t setFlags, InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest, - uint8_t _dataSize, int8_t _spm) : + uint8_t _dataSize, int8_t _spm, uint8_t _cc, uint16_t _ext) : %(base_class)s(machInst, "%(mnemonic)s", instMnem, setFlags, - _src1, _src2, _dest, _dataSize, _spm, + _src1, _src2, _dest, _dataSize, _spm, _cc, _ext, %(op_class)s) { %(constructor)s; @@ -192,6 +192,8 @@ self.src2 = src2 self.spm = spm self.dataSize = dataSize + self.cc = 0 + self.ext = 0 if SetStatus: self.className += "Flags" if spm: @@ -200,13 +202,13 @@ def getAllocator(self, microFlags): return '''new %(class_name)s(machInst, macrocodeBlock, %(flags)s, %(src1)s, %(src2)s, %(dest)s, - %(dataSize)s, %(spm)d)''' % { + %(dataSize)s, %(spm)d, %(cc)d, %(ext)d)''' % { "class_name" : self.className, "flags" : self.microFlagsText(microFlags), "src1" : self.src1, "src2" : self.src2, "dest" : self.dest, "dataSize" : self.dataSize, - "spm" : self.spm} + "spm" : self.spm, "cc" : self.cc, "ext" : self.ext} class Movfp(FpOp): def __init__(self, dest, src1, spm=0, \