64a65,105
> namespace ConditionTests
> {
> enum CondTest {
> True,
> NotFalse = True,
> ECF,
> EZF,
> SZnZF,
> MSTRZ,
> STRZ,
> MSTRC,
> STRZnZF,
> OF,
> CF,
> ZF,
> CvZF,
> SF,
> PF,
> SxOF,
> SxOvZF,
>
> False,
> NotTrue = False,
> NotECF,
> NotEZF,
> NotSZnZF,
> NotMSTRZ,
> NotSTRZ,
> NotMSTRC,
> NotSTRZnZF,
> NotOF,
> NotCF,
> NotZF,
> NotCvZF,
> NotSF,
> NotPF,
> NotSxOF,
> NotSxOvZF
> };
> }
>
68c109
< class RegOp : public X86MicroopBase
---
> class RegOpBase : public X86MicroopBase
72d112
< const RegIndex src2;
74d113
< const bool setStatus;
76c115
< const uint8_t ext;
---
> const uint16_t ext;
78a118,144
> RegOpBase(ExtMachInst _machInst,
> const char *mnem, const char *_instMnem,
> bool isMicro, bool isDelayed,
> bool isFirst, bool isLast,
> RegIndex _src1, RegIndex _dest,
> uint8_t _dataSize, uint16_t _ext,
> OpClass __opClass) :
> X86MicroopBase(_machInst, mnem, _instMnem,
> isMicro, isDelayed, isFirst, isLast,
> __opClass),
> src1(_src1), dest(_dest),
> dataSize(_dataSize), ext(_ext)
> {
> }
>
> //Figure out what the condition code flags should be.
> uint64_t genFlags(uint64_t oldFlags, uint64_t flagMask,
> uint64_t _dest, uint64_t _src1, uint64_t _src2) const;
> bool checkCondition(uint64_t flags) const;
> };
>
> class RegOp : public RegOpBase
> {
> protected:
> const RegIndex src2;
>
> // Constructor
84c150
< bool _setStatus, uint8_t _dataSize, uint8_t _ext,
---
> uint8_t _dataSize, uint16_t _ext,
86c152
< X86MicroopBase(_machInst, mnem, _instMnem,
---
> RegOpBase(_machInst, mnem, _instMnem,
87a154
> _src1, _dest, _dataSize, _ext,
89,90c156
< src1(_src1), src2(_src2), dest(_dest),
< setStatus(_setStatus), dataSize(_dataSize), ext(_ext)
---
> src2(_src2)
98c164
< class RegOpImm : public X86MicroopBase
---
> class RegOpImm : public RegOpBase
101d166
< const RegIndex src1;
103,106d167
< const RegIndex dest;
< const bool setStatus;
< const uint8_t dataSize;
< const uint8_t ext;
114c175
< bool _setStatus, uint8_t _dataSize, uint8_t _ext,
---
> uint8_t _dataSize, uint16_t _ext,
116c177
< X86MicroopBase(_machInst, mnem, _instMnem,
---
> RegOpBase(_machInst, mnem, _instMnem,
117a179
> _src1, _dest, _dataSize, _ext,
119,120c181
< src1(_src1), imm8(_imm8), dest(_dest),
< setStatus(_setStatus), dataSize(_dataSize), ext(_ext)
---
> imm8(_imm8)