blockmem.isa (3439:b35c5f0ff57b) blockmem.isa (3440:d2adedf01f3a)
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
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 SparcDelayedMicroInst
59 class BlockMemMicro : public SparcMicroInst
60 {
61 protected:
62
63 // Constructor
64 BlockMemMicro(const char *mnem, ExtMachInst _machInst,
65 OpClass __opClass, int8_t _offset) :
60 {
61 protected:
62
63 // Constructor
64 BlockMemMicro(const char *mnem, ExtMachInst _machInst,
65 OpClass __opClass, int8_t _offset) :
66 SparcDelayedMicroInst(mnem, _machInst, __opClass),
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;"
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;"
293 pcedCode = matcher.sub("Frd_%d" % microPc, code)
294 iop = InstObjParams(name, Name, 'BlockMem', pcedCode,
295 opt_flags, {"ea_code": addrCalcReg,
296 "fault_check": faultCode, "micro_pc": microPc,
297 "set_flags": flag_code})
298 iop_imm = InstObjParams(name, Name + 'Imm', 'BlockMemImm', pcedCode,
299 opt_flags, {"ea_code": addrCalcImm,
300 "fault_check": faultCode, "micro_pc": microPc,

--- 37 unchanged lines hidden ---
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 ---