macromem.hh (7130:12d7f945261f) | macromem.hh (7134:60fe8a00b36e) |
---|---|
1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 68 unchanged lines hidden (view full) --- 77}; 78 79/** 80 * Memory microops which use IntReg + Imm addressing 81 */ 82class MicroMemOp : public MicroIntOp 83{ 84 protected: | 1/* 2 * Copyright (c) 2010 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 68 unchanged lines hidden (view full) --- 77}; 78 79/** 80 * Memory microops which use IntReg + Imm addressing 81 */ 82class MicroMemOp : public MicroIntOp 83{ 84 protected: |
85 bool up; |
|
85 unsigned memAccessFlags; 86 87 MicroMemOp(const char *mnem, ExtMachInst machInst, OpClass __opClass, | 86 unsigned memAccessFlags; 87 88 MicroMemOp(const char *mnem, ExtMachInst machInst, OpClass __opClass, |
88 RegIndex _ura, RegIndex _urb, uint8_t _imm) | 89 RegIndex _ura, RegIndex _urb, bool _up, uint8_t _imm) |
89 : MicroIntOp(mnem, machInst, __opClass, _ura, _urb, _imm), | 90 : MicroIntOp(mnem, machInst, __opClass, _ura, _urb, _imm), |
90 memAccessFlags(0) | 91 up(_up), memAccessFlags(0) |
91 { 92 } 93}; 94 | 92 { 93 } 94}; 95 |
95/** 96 * Arm Macro Memory operations like LDM/STM 97 */ 98class ArmMacroMemoryOp : public PredMacroOp 99{ 100 protected: 101 /// Memory request flags. See mem_req_base.hh. 102 unsigned memAccessFlags; 103 104 uint32_t reglist; 105 uint32_t ones; 106 107 ArmMacroMemoryOp(const char *mnem, ExtMachInst _machInst, 108 OpClass __opClass) 109 : PredMacroOp(mnem, _machInst, __opClass), memAccessFlags(0), 110 reglist(machInst.regList), ones(0) 111 { 112 ones = number_of_ones(reglist); 113 numMicroops = ones + machInst.puswl.writeback + 1; 114 // Remember that writeback adds a uop 115 microOps = new StaticInstPtr[numMicroops]; 116 } 117}; | |
118} 119 120#endif //__ARCH_ARM_INSTS_MACROMEM_HH__ | 96} 97 98#endif //__ARCH_ARM_INSTS_MACROMEM_HH__ |