microregop.hh (5083:49559a8060e8) | microregop.hh (6345:f9ae7c3a036c) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 65 unchanged lines hidden (view full) --- 74 const uint16_t ext; 75 RegIndex foldOBit; 76 77 // Constructor 78 RegOpBase(ExtMachInst _machInst, 79 const char *mnem, const char *_instMnem, 80 bool isMicro, bool isDelayed, 81 bool isFirst, bool isLast, | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 65 unchanged lines hidden (view full) --- 74 const uint16_t ext; 75 RegIndex foldOBit; 76 77 // Constructor 78 RegOpBase(ExtMachInst _machInst, 79 const char *mnem, const char *_instMnem, 80 bool isMicro, bool isDelayed, 81 bool isFirst, bool isLast, |
82 RegIndex _src1, RegIndex _dest, | 82 InstRegIndex _src1, InstRegIndex _dest, |
83 uint8_t _dataSize, uint16_t _ext, 84 OpClass __opClass) : 85 X86MicroopBase(_machInst, mnem, _instMnem, 86 isMicro, isDelayed, isFirst, isLast, 87 __opClass), | 83 uint8_t _dataSize, uint16_t _ext, 84 OpClass __opClass) : 85 X86MicroopBase(_machInst, mnem, _instMnem, 86 isMicro, isDelayed, isFirst, isLast, 87 __opClass), |
88 src1(_src1), dest(_dest), | 88 src1(_src1.idx), dest(_dest.idx), |
89 dataSize(_dataSize), ext(_ext) 90 { 91 foldOBit = (dataSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0; 92 } 93 94 //Figure out what the condition code flags should be. 95 uint64_t genFlags(uint64_t oldFlags, uint64_t flagMask, 96 uint64_t _dest, uint64_t _src1, uint64_t _src2, --- 5 unchanged lines hidden (view full) --- 102 protected: 103 const RegIndex src2; 104 105 // Constructor 106 RegOp(ExtMachInst _machInst, 107 const char *mnem, const char *_instMnem, 108 bool isMicro, bool isDelayed, 109 bool isFirst, bool isLast, | 89 dataSize(_dataSize), ext(_ext) 90 { 91 foldOBit = (dataSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0; 92 } 93 94 //Figure out what the condition code flags should be. 95 uint64_t genFlags(uint64_t oldFlags, uint64_t flagMask, 96 uint64_t _dest, uint64_t _src1, uint64_t _src2, --- 5 unchanged lines hidden (view full) --- 102 protected: 103 const RegIndex src2; 104 105 // Constructor 106 RegOp(ExtMachInst _machInst, 107 const char *mnem, const char *_instMnem, 108 bool isMicro, bool isDelayed, 109 bool isFirst, bool isLast, |
110 RegIndex _src1, RegIndex _src2, RegIndex _dest, | 110 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest, |
111 uint8_t _dataSize, uint16_t _ext, 112 OpClass __opClass) : 113 RegOpBase(_machInst, mnem, _instMnem, 114 isMicro, isDelayed, isFirst, isLast, 115 _src1, _dest, _dataSize, _ext, 116 __opClass), | 111 uint8_t _dataSize, uint16_t _ext, 112 OpClass __opClass) : 113 RegOpBase(_machInst, mnem, _instMnem, 114 isMicro, isDelayed, isFirst, isLast, 115 _src1, _dest, _dataSize, _ext, 116 __opClass), |
117 src2(_src2) | 117 src2(_src2.idx) |
118 { 119 } 120 121 std::string generateDisassembly(Addr pc, 122 const SymbolTable *symtab) const; 123 }; 124 125 class RegOpImm : public RegOpBase 126 { 127 protected: 128 const uint8_t imm8; 129 130 // Constructor 131 RegOpImm(ExtMachInst _machInst, 132 const char * mnem, const char *_instMnem, 133 bool isMicro, bool isDelayed, 134 bool isFirst, bool isLast, | 118 { 119 } 120 121 std::string generateDisassembly(Addr pc, 122 const SymbolTable *symtab) const; 123 }; 124 125 class RegOpImm : public RegOpBase 126 { 127 protected: 128 const uint8_t imm8; 129 130 // Constructor 131 RegOpImm(ExtMachInst _machInst, 132 const char * mnem, const char *_instMnem, 133 bool isMicro, bool isDelayed, 134 bool isFirst, bool isLast, |
135 RegIndex _src1, uint8_t _imm8, RegIndex _dest, | 135 InstRegIndex _src1, uint8_t _imm8, InstRegIndex _dest, |
136 uint8_t _dataSize, uint16_t _ext, 137 OpClass __opClass) : 138 RegOpBase(_machInst, mnem, _instMnem, 139 isMicro, isDelayed, isFirst, isLast, 140 _src1, _dest, _dataSize, _ext, 141 __opClass), 142 imm8(_imm8) 143 { 144 } 145 146 std::string generateDisassembly(Addr pc, 147 const SymbolTable *symtab) const; 148 }; 149} 150 151#endif //__ARCH_X86_INSTS_MICROREGOP_HH__ | 136 uint8_t _dataSize, uint16_t _ext, 137 OpClass __opClass) : 138 RegOpBase(_machInst, mnem, _instMnem, 139 isMicro, isDelayed, isFirst, isLast, 140 _src1, _dest, _dataSize, _ext, 141 __opClass), 142 imm8(_imm8) 143 { 144 } 145 146 std::string generateDisassembly(Addr pc, 147 const SymbolTable *symtab) const; 148 }; 149} 150 151#endif //__ARCH_X86_INSTS_MICROREGOP_HH__ |