X86: Implement the cda microop which checks if an address is legal to write to.

--HG--
extra : convert_revision : afe20649180dd59ad0702b98f7293be6c9226359
This commit is contained in:
Gabe Black 2007-10-22 14:30:56 -07:00
parent 93da9eb7f6
commit 421aea980f

View file

@ -445,5 +445,27 @@ let {{
self.mnemonic = "lea"
microopClasses["lea"] = LeaOp
iop = InstObjParams("cda", "Cda", 'X86ISA::LdStOp',
{"code": '''
Addr paddr;
fault = xc->translateDataWriteAddr(EA, paddr,
dataSize, (1 << segment));
''',
"ea_code": calculateEA})
header_output += MicroLeaDeclare.subst(iop)
decoder_output += MicroLdStOpConstructor.subst(iop)
exec_output += MicroLeaExecute.subst(iop)
class CdaOp(LdStOp):
def __init__(self, segment, addr, disp = 0,
dataSize="env.dataSize", addressSize="env.addressSize"):
super(CdaOp, self).__init__("NUM_INTREGS", segment,
addr, disp, dataSize, addressSize)
self.className = "Cda"
self.mnemonic = "cda"
microopClasses["cda"] = CdaOp
}};