1// Copyright (c) 2006 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 --- 42 unchanged lines hidden (view full) --- 51 protected: 52 53 // Constructor 54 BlockMemImm(const char *mnem, ExtMachInst _machInst) : 55 BlockMem(mnem, _machInst) 56 {} 57 }; 58 |
59 class BlockMemMicro : public SparcMicroInst |
60 { 61 protected: 62 63 // Constructor 64 BlockMemMicro(const char *mnem, ExtMachInst _machInst, 65 OpClass __opClass, int8_t _offset) : |
66 SparcMicroInst(mnem, _machInst, __opClass), |
67 offset(_offset) 68 {} 69 70 std::string generateDisassembly(Addr pc, 71 const SymbolTable *symtab) const; 72 73 const int8_t offset; 74 }; --- 210 unchanged lines hidden (view full) --- 285 decoder_output = BlockMemConstructor.subst(iop) + BlockMemConstructor.subst(iop_imm) 286 decode_block = ROrImmDecode.subst(iop) 287 matcher = re.compile(r'Frd_N') 288 exec_output = '' 289 for microPc in range(8): 290 flag_code = '' 291 if (microPc == 7): 292 flag_code = "flags[IsLastMicroOp] = true;" |
293 else: 294 flag_code = "flags[IsDelayedCommit] = true;" |
295 pcedCode = matcher.sub("Frd_%d" % microPc, code) 296 iop = InstObjParams(name, Name, 'BlockMem', pcedCode, 297 opt_flags, {"ea_code": addrCalcReg, 298 "fault_check": faultCode, "micro_pc": microPc, 299 "set_flags": flag_code}) 300 iop_imm = InstObjParams(name, Name + 'Imm', 'BlockMemImm', pcedCode, 301 opt_flags, {"ea_code": addrCalcImm, 302 "fault_check": faultCode, "micro_pc": microPc, --- 37 unchanged lines hidden --- |