fpop.isa (7087:fb8d5786ff30) fpop.isa (7620:3d8a23caa1ef)
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

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

74def template MicroFpOpDeclare {{
75 class %(class_name)s : public %(base_class)s
76 {
77 protected:
78 void buildMe();
79
80 public:
81 %(class_name)s(ExtMachInst _machInst,
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

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

74def template MicroFpOpDeclare {{
75 class %(class_name)s : public %(base_class)s
76 {
77 protected:
78 void buildMe();
79
80 public:
81 %(class_name)s(ExtMachInst _machInst,
82 const char * instMnem,
83 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
82 const char * instMnem, uint64_t setFlags,
84 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
85 uint8_t _dataSize, int8_t _spm);
86
87 %(class_name)s(ExtMachInst _machInst,
88 const char * instMnem,
89 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
90 uint8_t _dataSize, int8_t _spm);
91

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

99 {
100 %(constructor)s;
101 }
102
103 inline %(class_name)s::%(class_name)s(
104 ExtMachInst machInst, const char * instMnem,
105 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
106 uint8_t _dataSize, int8_t _spm) :
83 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
84 uint8_t _dataSize, int8_t _spm);
85
86 %(class_name)s(ExtMachInst _machInst,
87 const char * instMnem,
88 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
89 uint8_t _dataSize, int8_t _spm);
90

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

98 {
99 %(constructor)s;
100 }
101
102 inline %(class_name)s::%(class_name)s(
103 ExtMachInst machInst, const char * instMnem,
104 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
105 uint8_t _dataSize, int8_t _spm) :
107 %(base_class)s(machInst, "%(mnemonic)s", instMnem,
108 false, false, false, false,
106 %(base_class)s(machInst, "%(mnemonic)s", instMnem, 0,
109 _src1, _src2, _dest, _dataSize, _spm,
110 %(op_class)s)
111 {
112 buildMe();
113 }
114
115 inline %(class_name)s::%(class_name)s(
107 _src1, _src2, _dest, _dataSize, _spm,
108 %(op_class)s)
109 {
110 buildMe();
111 }
112
113 inline %(class_name)s::%(class_name)s(
116 ExtMachInst machInst, const char * instMnem,
117 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
114 ExtMachInst machInst, const char * instMnem, uint64_t setFlags,
118 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
119 uint8_t _dataSize, int8_t _spm) :
115 InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest,
116 uint8_t _dataSize, int8_t _spm) :
120 %(base_class)s(machInst, "%(mnemonic)s", instMnem,
121 isMicro, isDelayed, isFirst, isLast,
117 %(base_class)s(machInst, "%(mnemonic)s", instMnem, setFlags,
122 _src1, _src2, _dest, _dataSize, _spm,
123 %(op_class)s)
124 {
125 buildMe();
126 }
127}};
128
129let {{

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

221 self.src2 = src2
222 self.spm = spm
223 self.dataSize = dataSize
224 if SetStatus:
225 self.className += "Flags"
226 if spm:
227 self.className += "Top"
228
118 _src1, _src2, _dest, _dataSize, _spm,
119 %(op_class)s)
120 {
121 buildMe();
122 }
123}};
124
125let {{

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

217 self.src2 = src2
218 self.spm = spm
219 self.dataSize = dataSize
220 if SetStatus:
221 self.className += "Flags"
222 if spm:
223 self.className += "Top"
224
229 def getAllocator(self, *microFlags):
230 return '''new %(class_name)s(machInst, macrocodeBlock
225 def getAllocator(self, microFlags):
226 return '''new %(class_name)s(machInst, macrocodeBlock,
231 %(flags)s, %(src1)s, %(src2)s, %(dest)s,
232 %(dataSize)s, %(spm)d)''' % {
233 "class_name" : self.className,
234 "flags" : self.microFlagsText(microFlags),
235 "src1" : self.src1, "src2" : self.src2,
236 "dest" : self.dest,
237 "dataSize" : self.dataSize,
238 "spm" : self.spm}

--- 86 unchanged lines hidden ---
227 %(flags)s, %(src1)s, %(src2)s, %(dest)s,
228 %(dataSize)s, %(spm)d)''' % {
229 "class_name" : self.className,
230 "flags" : self.microFlagsText(microFlags),
231 "src1" : self.src1, "src2" : self.src2,
232 "dest" : self.dest,
233 "dataSize" : self.dataSize,
234 "spm" : self.spm}

--- 86 unchanged lines hidden ---