X86: Make the Ruflag microop work correctly, and make the code a little clearer.

--HG--
extra : convert_revision : c551f51cdda46df99370363ed2d70916db8413eb
This commit is contained in:
Gabe Black 2007-08-26 20:41:36 -07:00
parent ac5ec1542e
commit 8d1c7a83d7

View file

@ -652,10 +652,10 @@ let {{
defineMicroRegOpRd('Rdip', 'DestReg = RIP')
defineMicroRegOpRd('Ruflags', 'DestReg = ccFlagBits')
defineMicroRegOpRdImm('Ruflag', '''
int flag = bits(ccFlagBits, (1 << imm8) + 0*psrc1);
int flag = bits(ccFlagBits, imm8 + 0*psrc1);
DestReg = merge(DestReg, flag, dataSize);
ccFlagBits = ccFlagBits & ~EZFBit;
ccFlagBits = ccFlagBits | ((flag == 0) ? EZFBit : 0);
ccFlagBits = (flag == 0) ? (ccFlagBits | EZFBit) :
(ccFlagBits & ~EZFBit);
''')
defineMicroRegOpImm('Sext', '''