blockmem.isa (3952:092d03b2ab95) blockmem.isa (3956:4f306596983e)
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

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

489 flag_code = ''
490 pcedCode = ''
491 if (microPc == 1):
492 flag_code = "flags[IsLastMicroOp] = true;"
493 pcedCode = matcher.sub("RdHigh", code)
494 else:
495 flag_code = "flags[IsDelayedCommit] = true;"
496 pcedCode = matcher.sub("RdLow", code)
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

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

489 flag_code = ''
490 pcedCode = ''
491 if (microPc == 1):
492 flag_code = "flags[IsLastMicroOp] = true;"
493 pcedCode = matcher.sub("RdHigh", code)
494 else:
495 flag_code = "flags[IsDelayedCommit] = true;"
496 pcedCode = matcher.sub("RdLow", code)
497 iop = InstObjParams(name, Name, 'TwinMem', pcedCode,
498 opt_flags, {"ea_code": addrCalcReg,
497 iop = InstObjParams(name, Name, 'TwinMem',
498 {"code": pcedCode, "ea_code": addrCalcReg,
499 "fault_check": faultCode, "micro_pc": microPc,
499 "fault_check": faultCode, "micro_pc": microPc,
500 "set_flags": flag_code})
501 iop_imm = InstObjParams(name, Name + 'Imm', 'TwinMemImm', pcedCode,
502 opt_flags, {"ea_code": addrCalcImm,
500 "set_flags": flag_code}, opt_flags)
501 iop_imm = InstObjParams(name, Name + 'Imm', 'TwinMemImm',
502 {"code": pcedCode, "ea_code": addrCalcImm,
503 "fault_check": faultCode, "micro_pc": microPc,
503 "fault_check": faultCode, "micro_pc": microPc,
504 "set_flags": flag_code})
504 "set_flags": flag_code}, opt_flags)
505 decoder_output += BlockMemMicroConstructor.subst(iop)
506 decoder_output += BlockMemMicroConstructor.subst(iop_imm)
507 exec_output += doDualSplitExecute(
505 decoder_output += BlockMemMicroConstructor.subst(iop)
506 decoder_output += BlockMemMicroConstructor.subst(iop_imm)
507 exec_output += doDualSplitExecute(
508 pcedCode, addrCalcReg, addrCalcImm, LoadExecute, faultCode,
508 pcedCode, addrCalcReg, addrCalcImm, LoadFuncs, faultCode,
509 makeMicroName(name, microPc),
510 makeMicroName(name + "Imm", microPc),
511 makeMicroName(Name, microPc),
512 makeMicroName(Name + "Imm", microPc),
513 asi, opt_flags);
514 faultCode = ''
515 return (header_output, decoder_output, exec_output, decode_block)
516

--- 33 unchanged lines hidden ---
509 makeMicroName(name, microPc),
510 makeMicroName(name + "Imm", microPc),
511 makeMicroName(Name, microPc),
512 makeMicroName(Name + "Imm", microPc),
513 asi, opt_flags);
514 faultCode = ''
515 return (header_output, decoder_output, exec_output, decode_block)
516

--- 33 unchanged lines hidden ---