ldstop.isa (5969:815827deb469) ldstop.isa (6056:4435d13700de)
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

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

479 defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
480 defineMicroStoreOp('Stupd', 'Mem = pick(Data, 2, dataSize);',
481 'Base = merge(Base, EA - SegBase, addressSize);',
482 'Base = merge(Base, pkt->req->getVaddr() - SegBase, addressSize);');
483 defineMicroStoreOp('Cda', 'Mem = 0;', mem_flags="Request::NO_ACCESS")
484
485 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
486 {"code": "Data = merge(Data, EA, dataSize);",
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

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

479 defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
480 defineMicroStoreOp('Stupd', 'Mem = pick(Data, 2, dataSize);',
481 'Base = merge(Base, EA - SegBase, addressSize);',
482 'Base = merge(Base, pkt->req->getVaddr() - SegBase, addressSize);');
483 defineMicroStoreOp('Cda', 'Mem = 0;', mem_flags="Request::NO_ACCESS")
484
485 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
486 {"code": "Data = merge(Data, EA, dataSize);",
487 "ea_code": calculateEA})
487 "ea_code": '''
488 EA = bits(scale * Index + Base + disp, addressSize * 8 - 1, 0);
489 '''})
488 header_output += MicroLeaDeclare.subst(iop)
489 decoder_output += MicroLdStOpConstructor.subst(iop)
490 exec_output += MicroLeaExecute.subst(iop)
491
492 class LeaOp(LdStOp):
493 def __init__(self, data, segment, addr, disp = 0,
494 dataSize="env.dataSize", addressSize="env.addressSize"):
495 super(LeaOp, self).__init__(data, segment,

--- 37 unchanged lines hidden ---
490 header_output += MicroLeaDeclare.subst(iop)
491 decoder_output += MicroLdStOpConstructor.subst(iop)
492 exec_output += MicroLeaExecute.subst(iop)
493
494 class LeaOp(LdStOp):
495 def __init__(self, data, segment, addr, disp = 0,
496 dataSize="env.dataSize", addressSize="env.addressSize"):
497 super(LeaOp, self).__init__(data, segment,

--- 37 unchanged lines hidden ---