microldstop.hh (7678:f19b6a3a8cec) | microldstop.hh (8442:b1f3dfae06f1) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 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 --- 83 unchanged lines hidden (view full) --- 92 assert(_segment.idx < NUM_SEGMENTREGS); 93 foldOBit = (dataSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0; 94 foldABit = 95 (addressSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0; 96 } 97 98 std::string generateDisassembly(Addr pc, 99 const SymbolTable *symtab) const; | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 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 --- 83 unchanged lines hidden (view full) --- 92 assert(_segment.idx < NUM_SEGMENTREGS); 93 foldOBit = (dataSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0; 94 foldABit = 95 (addressSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0; 96 } 97 98 std::string generateDisassembly(Addr pc, 99 const SymbolTable *symtab) const; |
100 101 template<class Context, class MemType> 102 Fault read(Context *xc, Addr EA, MemType & Mem, unsigned flags) const 103 { 104 Fault fault = NoFault; 105 switch(dataSize) 106 { 107 case 1: 108 fault = xc->read(EA, (uint8_t&)Mem, flags); 109 break; 110 case 2: 111 fault = xc->read(EA, (uint16_t&)Mem, flags); 112 break; 113 case 4: 114 fault = xc->read(EA, (uint32_t&)Mem, flags); 115 break; 116 case 8: 117 fault = xc->read(EA, (uint64_t&)Mem, flags); 118 break; 119 default: 120 panic("Bad operand size %d for read at %#x.\n", dataSize, EA); 121 } 122 return fault; 123 } 124 125 template<class Context, class MemType> 126 Fault write(Context *xc, MemType & Mem, Addr EA, unsigned flags) const 127 { 128 Fault fault = NoFault; 129 switch(dataSize) 130 { 131 case 1: 132 fault = xc->write((uint8_t&)Mem, EA, flags, 0); 133 break; 134 case 2: 135 fault = xc->write((uint16_t&)Mem, EA, flags, 0); 136 break; 137 case 4: 138 fault = xc->write((uint32_t&)Mem, EA, flags, 0); 139 break; 140 case 8: 141 fault = xc->write((uint64_t&)Mem, EA, flags, 0); 142 break; 143 default: 144 panic("Bad operand size %d for write at %#x.\n", dataSize, EA); 145 } 146 return fault; 147 } 148 149 uint64_t 150 get(PacketPtr pkt) const 151 { 152 switch(dataSize) 153 { 154 case 1: 155 return pkt->get<uint8_t>(); 156 case 2: 157 return pkt->get<uint16_t>(); 158 case 4: 159 return pkt->get<uint32_t>(); 160 case 8: 161 return pkt->get<uint64_t>(); 162 default: 163 panic("Bad operand size %d for read at %#x.\n", 164 dataSize, pkt->getAddr()); 165 } 166 } | |
167 }; 168} 169 170#endif //__ARCH_X86_INSTS_MICROLDSTOP_HH__ | 100 }; 101} 102 103#endif //__ARCH_X86_INSTS_MICROLDSTOP_HH__ |