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 --- |