0x4: Inst::PCMPEQB(Pq,Qq);
0x5: Inst::PCMPEQW(Pq,Qq);
0x6: Inst::PCMPEQD(Pq,Qq);
- 0x7: WarnUnimpl::emms();
+ 0x7: Inst::EMMS();
}
// repe (0xF3)
0x4: decode OPCODE_OP_BOTTOM3 {
assembler.symbols["fsw"] = readFpReg("FSW")
assembler.symbols["fcw"] = readFpReg("FCW")
+ assembler.symbols["ftw"] = readFpReg("FTW")
macroopDict = assembler.assemble(microcode)
else if(arg1 == arg2)
ccFlagBits = ccFlagBits | ZFBit;
'''
+
+ class Emms(MediaOp):
+ def __init__(self):
+ super(Emms, self).__init__('InstRegIndex(MISCREG_FTW)',
+ 'InstRegIndex(0)', 'InstRegIndex(0)', 0)
+ code = 'FTW = 0xFFFF;'
}};
# Registers related to the state of x87 floating point unit.
'TOP': controlReg('MISCREG_X87_TOP', 66, ctype='ub'),
'FSW': controlReg('MISCREG_FSW', 67, ctype='uw'),
+ 'FTW': controlReg('MISCREG_FTW', 68, ctype='uw'),
# The segment base as used by memory instructions.
'SegBase': controlReg('MISCREG_SEG_EFF_BASE(segment)', 70),