1// Copyright (c) 2006 The Regents of The University of Michigan
1// Copyright (c) 2006-2007 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
9// notice, this list of conditions and the following disclaimer in the

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

446 decoder_output = BlockMemConstructor.subst(iop) + BlockMemConstructor.subst(iop_imm)
447 decode_block = ROrImmDecode.subst(iop)
448 matcher = re.compile(r'Frd_N')
449 exec_output = ''
450 for microPc in range(8):
451 flag_code = ''
452 if (microPc == 7):
453 flag_code = "flags[IsLastMicroOp] = true;"
454 elif (microPc == 0):
455 flag_code = "flags[IsDelayedCommit] = true; flags[IsFirstMicroOp] = true;"
456 else:
457 flag_code = "flags[IsDelayedCommit] = true;"
458 pcedCode = matcher.sub("Frd_%d" % microPc, code)
459 iop = InstObjParams(name, Name, 'BlockMem', pcedCode,
460 opt_flags, {"ea_code": addrCalcReg,
461 "fault_check": faultCode, "micro_pc": microPc,
462 "set_flags": flag_code})
463 iop_imm = InstObjParams(name, Name + 'Imm', 'BlockMemImm', pcedCode,

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

489 exec_output = ''
490 for microPc in range(2):
491 flag_code = ''
492 pcedCode = ''
493 if (microPc == 1):
494 flag_code = "flags[IsLastMicroOp] = true;"
495 pcedCode = matcher.sub("RdHigh", code)
496 else:
495 flag_code = "flags[IsDelayedCommit] = true;"
497 flag_code = "flags[IsDelayedCommit] = true; flags[IsFirstMicroOp] = true;"
498 pcedCode = matcher.sub("RdLow", code)
499 iop = InstObjParams(name, Name, 'TwinMem', pcedCode,
500 opt_flags, {"ea_code": addrCalcReg,
501 "fault_check": faultCode, "micro_pc": microPc,
502 "set_flags": flag_code})
503 iop_imm = InstObjParams(name, Name + 'Imm', 'TwinMemImm', pcedCode,
504 opt_flags, {"ea_code": addrCalcImm,
505 "fault_check": faultCode, "micro_pc": microPc,

--- 46 unchanged lines hidden ---