mem.isa (4050:cf1daaef9109) mem.isa (5736:426510e758ad)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2003-2005 The Regents of The University of Michigan
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met: redistributions of source code must retain the above copyright

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

38 /**
39 * Base class for general Alpha memory-format instructions.
40 */
41 class Memory : public AlphaStaticInst
42 {
43 protected:
44
45 /// Memory request flags. See mem_req_base.hh.
1// -*- mode:c++ -*-
2
3// Copyright (c) 2003-2005 The Regents of The University of Michigan
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met: redistributions of source code must retain the above copyright

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

38 /**
39 * Base class for general Alpha memory-format instructions.
40 */
41 class Memory : public AlphaStaticInst
42 {
43 protected:
44
45 /// Memory request flags. See mem_req_base.hh.
46 unsigned memAccessFlags;
46 Request::Flags memAccessFlags;
47 /// Pointer to EAComp object.
48 const StaticInstPtr eaCompPtr;
49 /// Pointer to MemAcc object.
50 const StaticInstPtr memAccPtr;
51
52 /// Constructor
53 Memory(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
54 StaticInstPtr _eaCompPtr = nullStaticInstPtr,
55 StaticInstPtr _memAccPtr = nullStaticInstPtr)
56 : AlphaStaticInst(mnem, _machInst, __opClass),
47 /// Pointer to EAComp object.
48 const StaticInstPtr eaCompPtr;
49 /// Pointer to MemAcc object.
50 const StaticInstPtr memAccPtr;
51
52 /// Constructor
53 Memory(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
54 StaticInstPtr _eaCompPtr = nullStaticInstPtr,
55 StaticInstPtr _memAccPtr = nullStaticInstPtr)
56 : AlphaStaticInst(mnem, _machInst, __opClass),
57 memAccessFlags(0), eaCompPtr(_eaCompPtr), memAccPtr(_memAccPtr)
57 eaCompPtr(_eaCompPtr), memAccPtr(_memAccPtr)
58 {
59 }
60
61 std::string
62 generateDisassembly(Addr pc, const SymbolTable *symtab) const;
63
64 public:
65

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

672 ea_iop = InstObjParams(name, Name, base_class,
673 { 'ea_code':ea_code },
674 inst_flags)
675 memacc_iop = InstObjParams(name, Name, base_class,
676 { 'memacc_code':memacc_code, 'postacc_code':postacc_code },
677 inst_flags)
678
679 if mem_flags:
58 {
59 }
60
61 std::string
62 generateDisassembly(Addr pc, const SymbolTable *symtab) const;
63
64 public:
65

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

672 ea_iop = InstObjParams(name, Name, base_class,
673 { 'ea_code':ea_code },
674 inst_flags)
675 memacc_iop = InstObjParams(name, Name, base_class,
676 { 'memacc_code':memacc_code, 'postacc_code':postacc_code },
677 inst_flags)
678
679 if mem_flags:
680 s = '\n\tmemAccessFlags = ' + string.join(mem_flags, '|') + ';'
680 mem_flags = [ 'Request::%s' % flag for flag in mem_flags ]
681 s = '\n\tmemAccessFlags.reset(' + string.join(mem_flags, '|') + ');'
681 iop.constructor += s
682 memacc_iop.constructor += s
683
684 # select templates
685
686 # The InitiateAcc template is the same for StoreCond templates as the
687 # corresponding Store template..
688 StoreCondInitiateAcc = StoreInitiateAcc

--- 85 unchanged lines hidden ---
682 iop.constructor += s
683 memacc_iop.constructor += s
684
685 # select templates
686
687 # The InitiateAcc template is the same for StoreCond templates as the
688 # corresponding Store template..
689 StoreCondInitiateAcc = StoreInitiateAcc

--- 85 unchanged lines hidden ---