1// Copyright (c) 2007-2008 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license --- 163 unchanged lines hidden (view full) --- 172 173 %(code)s; 174 175 if(fault == NoFault) 176 { 177 fault = write(xc, Mem, EA, memFlags); 178 if(fault == NoFault) 179 { |
180 %(op_wb)s; 181 } 182 } 183 184 return fault; 185 } 186}}; 187 --- 217 unchanged lines hidden (view full) --- 405 defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);', 406 'Data = Mem & mask(dataSize * 8);', 407 '(StoreCheck << FlagShift)') 408 defineMicroLoadOp('Ldstl', 'Data = merge(Data, Mem, dataSize);', 409 'Data = Mem & mask(dataSize * 8);', 410 '(StoreCheck << FlagShift) | Request::LOCKED') 411 defineMicroLoadOp('Ldfp', 'FpData.uqw = Mem;', big = False) 412 |
413 def defineMicroStoreOp(mnemonic, code, completeCode="", mem_flags="0"): |
414 global header_output 415 global decoder_output 416 global exec_output 417 global microopClasses 418 Name = mnemonic 419 name = mnemonic.lower() 420 421 # Build up the all register version of this micro op 422 iop = InstObjParams(name, Name, 'X86ISA::LdStOp', 423 {"code": code, |
424 "complete_code": completeCode, 425 "ea_code": calculateEA}) 426 header_output += MicroLdStOpDeclare.subst(iop) 427 decoder_output += MicroLdStOpConstructor.subst(iop) 428 exec_output += MicroStoreExecute.subst(iop) 429 exec_output += MicroStoreInitiateAcc.subst(iop) 430 exec_output += MicroStoreCompleteAcc.subst(iop) 431 --- 71 unchanged lines hidden --- |