Deleted Added
sdiff udiff text old ( 7620:3d8a23caa1ef ) new ( 7626:bdd926760470 )
full compact
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// The license below extends only to copyright in the software and shall
5// not be construed as granting a license to any other intellectual
6// property including but not limited to intellectual property relating
7// to a hardware implementation of the functionality of the software
8// licensed hereunder. You may use the software subject to the license

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

56def template MicroLimmOpDeclare {{
57 class %(class_name)s : public X86ISA::X86MicroopBase
58 {
59 protected:
60 const RegIndex dest;
61 const uint64_t imm;
62 const uint8_t dataSize;
63 RegIndex foldOBit;
64
65 std::string generateDisassembly(Addr pc,
66 const SymbolTable *symtab) const;
67
68 public:
69 %(class_name)s(ExtMachInst _machInst,
70 const char * instMnem,
71 uint64_t setFlags, InstRegIndex _dest,
72 uint64_t _imm, uint8_t _dataSize);
73
74 %(BasicExecDeclare)s
75 };
76}};
77
78def template MicroLimmOpDisassembly {{
79 std::string %(class_name)s::generateDisassembly(Addr pc,
80 const SymbolTable *symtab) const
81 {
82 std::stringstream response;
83
84 printMnemonic(response, instMnem, mnemonic);
85 printDestReg(response, 0, dataSize);
86 response << ", ";
87 ccprintf(response, "%#x", imm);
88 return response.str();
89 }
90}};
91
92def template MicroLimmOpConstructor {{
93 inline %(class_name)s::%(class_name)s(
94 ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
95 InstRegIndex _dest, uint64_t _imm, uint8_t _dataSize) :
96 %(base_class)s(machInst, "%(mnemonic)s", instMnem,
97 setFlags, %(op_class)s),
98 dest(_dest.idx), imm(_imm), dataSize(_dataSize)
99 {
100 foldOBit = (dataSize == 1 && !machInst.rex.present) ? 1 << 6 : 0;
101 %(constructor)s;
102 }
103}};
104
105let {{
106 class LimmOp(X86Microop):
107 def __init__(self, dest, imm, dataSize="env.dataSize"):
108 self.className = "Limm"
109 self.mnemonic = "limm"

--- 59 unchanged lines hidden ---