127c127,128
< uint8_t _dataSize, uint8_t _addressSize);
---
> uint8_t _dataSize, uint8_t _addressSize,
> Request::FlagsType _memFlags);
134c135,136
< uint8_t _dataSize, uint8_t _addressSize);
---
> uint8_t _dataSize, uint8_t _addressSize,
> Request::FlagsType _memFlags);
154c156
< fault = read(xc, EA, Mem, (%(mem_flags)s) | segment);
---
> fault = read(xc, EA, Mem, memFlags);
181c183
< fault = read(xc, EA, Mem, (%(mem_flags)s) | segment);
---
> fault = read(xc, EA, Mem, memFlags);
228c230
< fault = write(xc, Mem, EA, (%(mem_flags)s) | segment);
---
> fault = write(xc, Mem, EA, memFlags);
256c258
< write(xc, Mem, EA, (%(mem_flags)s) | segment);
---
> write(xc, Mem, EA, memFlags);
299c301,302
< uint8_t _dataSize, uint8_t _addressSize);
---
> uint8_t _dataSize, uint8_t _addressSize,
> Request::FlagsType _memFlags);
306c309,310
< uint8_t _dataSize, uint8_t _addressSize);
---
> uint8_t _dataSize, uint8_t _addressSize,
> Request::FlagsType _memFlags);
328c332,333
< uint8_t _dataSize, uint8_t _addressSize) :
---
> uint8_t _dataSize, uint8_t _addressSize,
> Request::FlagsType _memFlags) :
333c338
< _dataSize, _addressSize, %(op_class)s)
---
> _dataSize, _addressSize, _memFlags, %(op_class)s)
344c349,350
< uint8_t _dataSize, uint8_t _addressSize) :
---
> uint8_t _dataSize, uint8_t _addressSize,
> Request::FlagsType _memFlags) :
349c355
< _dataSize, _addressSize, %(op_class)s)
---
> _dataSize, _addressSize, _memFlags, %(op_class)s)
357c363,364
< def __init__(self, data, segment, addr, disp, dataSize, addressSize):
---
> def __init__(self, data, segment, addr, disp,
> dataSize, addressSize, baseFlags, atCPL0):
363a371,373
> self.memFlags = baseFlags
> if atCPL0:
> self.memFlags += " | (CPL0FlagBit << FlagShift)"
369c379
< %(dataSize)s, %(addressSize)s)''' % {
---
> %(dataSize)s, %(addressSize)s, %(memFlags)s)''' % {
376c386,387
< "dataSize" : self.dataSize, "addressSize" : self.addressSize}
---
> "dataSize" : self.dataSize, "addressSize" : self.addressSize,
> "memFlags" : self.memFlags}
390c401
< def defineMicroLoadOp(mnemonic, code, mem_flags=0):
---
> def defineMicroLoadOp(mnemonic, code, mem_flags="0"):
401,402c412
< "ea_code": calculateEA,
< "mem_flags": mem_flags})
---
> "ea_code": calculateEA})
411,413c421,425
< dataSize="env.dataSize", addressSize="env.addressSize"):
< super(LoadOp, self).__init__(data, segment,
< addr, disp, dataSize, addressSize)
---
> dataSize="env.dataSize",
> addressSize="env.addressSize",
> atCPL0=False):
> super(LoadOp, self).__init__(data, segment, addr,
> disp, dataSize, addressSize, mem_flags, atCPL0)
420c432,433
< defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);', 'StoreCheck')
---
> defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
> 'X86ISA::StoreCheck')
437,438c450
< "ea_code": calculateEA,
< "mem_flags": mem_flags})
---
> "ea_code": calculateEA})
447,449c459,463
< dataSize="env.dataSize", addressSize="env.addressSize"):
< super(StoreOp, self).__init__(data, segment,
< addr, disp, dataSize, addressSize)
---
> dataSize="env.dataSize",
> addressSize="env.addressSize",
> atCPL0=False):
> super(StoreOp, self).__init__(data, segment, addr,
> disp, dataSize, addressSize, mem_flags, atCPL0)
464,465c478
< "ea_code": calculateEA,
< "mem_flags": 0})
---
> "ea_code": calculateEA})
474c487
< addr, disp, dataSize, addressSize)
---
> addr, disp, dataSize, addressSize, "0", False)
483,484c496
< "ea_code": calculateEA,
< "mem_flags": 0})
---
> "ea_code": calculateEA})
491c503,504
< dataSize="env.dataSize", addressSize="env.addressSize"):
---
> dataSize="env.dataSize",
> addressSize="env.addressSize"):
493c506
< addr, disp, dataSize, addressSize)
---
> addr, disp, dataSize, addressSize, "0", False)
501c514,515
< dataSize="env.dataSize", addressSize="env.addressSize"):
---
> dataSize="env.dataSize",
> addressSize="env.addressSize", atCPL0=False):
503c517
< addr, disp, dataSize, addressSize)
---
> addr, disp, dataSize, addressSize, "0", atCPL0)