ldstop.isa (5788:6d4161a36ca1) ldstop.isa (5890:bdef71accd68)
1// Copyright (c) 2008 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

--- 440 unchanged lines hidden (view full) ---

449 microopClasses[name] = StoreOp
450
451 defineMicroStoreOp('St', 'Mem = Data;')
452 defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
453 defineMicroStoreOp('Stupd', '''
454 Mem = Data;
455 Base = merge(Base, EA - SegBase, addressSize);
456 ''');
1// Copyright (c) 2008 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

--- 440 unchanged lines hidden (view full) ---

449 microopClasses[name] = StoreOp
450
451 defineMicroStoreOp('St', 'Mem = Data;')
452 defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
453 defineMicroStoreOp('Stupd', '''
454 Mem = Data;
455 Base = merge(Base, EA - SegBase, addressSize);
456 ''');
457 defineMicroStoreOp('Cda', 'Mem = 0;', "Request::NO_ACCESS")
457
458
458
459 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
460 {"code": "Data = merge(Data, EA, dataSize);",
461 "ea_code": calculateEA,
462 "mem_flags": 0})
463 header_output += MicroLeaDeclare.subst(iop)
464 decoder_output += MicroLdStOpConstructor.subst(iop)
465 exec_output += MicroLeaExecute.subst(iop)
466

--- 21 unchanged lines hidden (view full) ---

488 dataSize="env.dataSize", addressSize="env.addressSize"):
489 super(TiaOp, self).__init__("NUM_INTREGS", segment,
490 addr, disp, dataSize, addressSize)
491 self.className = "Tia"
492 self.mnemonic = "tia"
493
494 microopClasses["tia"] = TiaOp
495
459 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
460 {"code": "Data = merge(Data, EA, dataSize);",
461 "ea_code": calculateEA,
462 "mem_flags": 0})
463 header_output += MicroLeaDeclare.subst(iop)
464 decoder_output += MicroLdStOpConstructor.subst(iop)
465 exec_output += MicroLeaExecute.subst(iop)
466

--- 21 unchanged lines hidden (view full) ---

488 dataSize="env.dataSize", addressSize="env.addressSize"):
489 super(TiaOp, self).__init__("NUM_INTREGS", segment,
490 addr, disp, dataSize, addressSize)
491 self.className = "Tia"
492 self.mnemonic = "tia"
493
494 microopClasses["tia"] = TiaOp
495
496 iop = InstObjParams("cda", "Cda", 'X86ISA::LdStOp',
497 {"code": '''
498 Addr paddr;
499 fault = xc->translateDataWriteAddr(EA, paddr,
500 dataSize, (1 << segment));
501 ''',
502 "ea_code": calculateEA})
503 header_output += MicroLeaDeclare.subst(iop)
504 decoder_output += MicroLdStOpConstructor.subst(iop)
505 exec_output += MicroLeaExecute.subst(iop)
506
507 class CdaOp(LdStOp):
508 def __init__(self, segment, addr, disp = 0,
509 dataSize="env.dataSize", addressSize="env.addressSize"):
510 super(CdaOp, self).__init__("NUM_INTREGS", segment,
511 addr, disp, dataSize, addressSize)
512 self.className = "Cda"
513 self.mnemonic = "cda"
514
515 microopClasses["cda"] = CdaOp
516}};
517
496 class CdaOp(LdStOp):
497 def __init__(self, segment, addr, disp = 0,
498 dataSize="env.dataSize", addressSize="env.addressSize"):
499 super(CdaOp, self).__init__("NUM_INTREGS", segment,
500 addr, disp, dataSize, addressSize)
501 self.className = "Cda"
502 self.mnemonic = "cda"
503
504 microopClasses["cda"] = CdaOp
505}};
506