mem.hh (7811:a8fc35183c10) | mem.hh (12385:288c62455dde) |
---|---|
1/* 2 * Copyright (c) 2009 The University of Edinburgh 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 31 unchanged lines hidden (view full) --- 40 * Base class for memory operations. 41 */ 42class MemOp : public PowerStaticInst 43{ 44 protected: 45 46 /// Memory request flags. See mem_req_base.hh. 47 unsigned memAccessFlags; | 1/* 2 * Copyright (c) 2009 The University of Edinburgh 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 31 unchanged lines hidden (view full) --- 40 * Base class for memory operations. 41 */ 42class MemOp : public PowerStaticInst 43{ 44 protected: 45 46 /// Memory request flags. See mem_req_base.hh. 47 unsigned memAccessFlags; |
48 /// Pointer to EAComp object. 49 const StaticInstPtr eaCompPtr; 50 /// Pointer to MemAcc object. 51 const StaticInstPtr memAccPtr; | |
52 53 /// Constructor | 48 49 /// Constructor |
54 MemOp(const char *mnem, MachInst _machInst, OpClass __opClass, 55 StaticInstPtr _eaCompPtr = nullStaticInstPtr, 56 StaticInstPtr _memAccPtr = nullStaticInstPtr) | 50 MemOp(const char *mnem, MachInst _machInst, OpClass __opClass) |
57 : PowerStaticInst(mnem, _machInst, __opClass), | 51 : PowerStaticInst(mnem, _machInst, __opClass), |
58 memAccessFlags(0), 59 eaCompPtr(_eaCompPtr), 60 memAccPtr(_memAccPtr) | 52 memAccessFlags(0) |
61 { 62 } 63 64 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 65}; 66 67 68/** 69 * Class for memory operations with displacement. 70 */ 71class MemDispOp : public MemOp 72{ 73 protected: 74 75 int16_t disp; 76 77 /// Constructor | 53 { 54 } 55 56 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 57}; 58 59 60/** 61 * Class for memory operations with displacement. 62 */ 63class MemDispOp : public MemOp 64{ 65 protected: 66 67 int16_t disp; 68 69 /// Constructor |
78 MemDispOp(const char *mnem, MachInst _machInst, OpClass __opClass, 79 StaticInstPtr _eaCompPtr = nullStaticInstPtr, 80 StaticInstPtr _memAccPtr = nullStaticInstPtr) 81 : MemOp(mnem, _machInst, __opClass, _eaCompPtr, _memAccPtr), 82 disp(machInst.d) | 70 MemDispOp(const char *mnem, MachInst _machInst, OpClass __opClass) 71 : MemOp(mnem, _machInst, __opClass), disp(machInst.d) |
83 { 84 } 85 86 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 87}; 88 89} // namespace PowerISA 90 91#endif //__ARCH_POWER_INSTS_MEM_HH__ | 72 { 73 } 74 75 std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const; 76}; 77 78} // namespace PowerISA 79 80#endif //__ARCH_POWER_INSTS_MEM_HH__ |