data.isa (7193:91b7045a2d4b) data.isa (7214:9eba696c4592)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

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

38// Authors: Gabe Black
39
40let {{
41
42 header_output = ""
43 decoder_output = ""
44 exec_output = ""
45
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

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

38// Authors: Gabe Black
39
40let {{
41
42 header_output = ""
43 decoder_output = ""
44 exec_output = ""
45
46 calcGECode = '''
47 CondCodes = insertBits(CondCodes, 19, 16, resTemp);
48 '''
49
46 calcQCode = '''
47 CondCodes = CondCodes | ((resTemp & 1) << 27);
48 '''
49
50 calcCcCode = '''
51 uint16_t _ic, _iv, _iz, _in;
52 _in = (resTemp >> %(negBit)d) & 1;
53 _iz = (resTemp == 0);

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

103 buildCc = True, buildNonCc = True):
104 cCode = carryCode[flagType]
105 vCode = overflowCode[flagType]
106 negBit = 31
107 if flagType == "llbit":
108 negBit = 63
109 if flagType == "saturate":
110 immCcCode = calcQCode
50 calcQCode = '''
51 CondCodes = CondCodes | ((resTemp & 1) << 27);
52 '''
53
54 calcCcCode = '''
55 uint16_t _ic, _iv, _iz, _in;
56 _in = (resTemp >> %(negBit)d) & 1;
57 _iz = (resTemp == 0);

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

107 buildCc = True, buildNonCc = True):
108 cCode = carryCode[flagType]
109 vCode = overflowCode[flagType]
110 negBit = 31
111 if flagType == "llbit":
112 negBit = 63
113 if flagType == "saturate":
114 immCcCode = calcQCode
115 elif flagType == "ge":
116 immCcCode = calcGECode
111 else:
112 immCcCode = calcCcCode % {
113 "icValue": secondOpRe.sub(immOp2, cCode[0]),
114 "ivValue": secondOpRe.sub(immOp2, vCode),
115 "negBit": negBit
116 }
117 immCode = secondOpRe.sub(immOp2, code)
118 immIop = InstObjParams(mnem, mnem.capitalize() + suffix, "DataImmOp",

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

138 buildCc = True, buildNonCc = True):
139 cCode = carryCode[flagType]
140 vCode = overflowCode[flagType]
141 negBit = 31
142 if flagType == "llbit":
143 negBit = 63
144 if flagType == "saturate":
145 regCcCode = calcQCode
117 else:
118 immCcCode = calcCcCode % {
119 "icValue": secondOpRe.sub(immOp2, cCode[0]),
120 "ivValue": secondOpRe.sub(immOp2, vCode),
121 "negBit": negBit
122 }
123 immCode = secondOpRe.sub(immOp2, code)
124 immIop = InstObjParams(mnem, mnem.capitalize() + suffix, "DataImmOp",

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

144 buildCc = True, buildNonCc = True):
145 cCode = carryCode[flagType]
146 vCode = overflowCode[flagType]
147 negBit = 31
148 if flagType == "llbit":
149 negBit = 63
150 if flagType == "saturate":
151 regCcCode = calcQCode
152 elif flagType == "ge":
153 immCcCode = calcGECode
146 else:
147 regCcCode = calcCcCode % {
148 "icValue": secondOpRe.sub(regOp2, cCode[1]),
149 "ivValue": secondOpRe.sub(regOp2, vCode),
150 "negBit": negBit
151 }
152 regCode = secondOpRe.sub(regOp2, code)
153 regIop = InstObjParams(mnem, mnem.capitalize() + suffix, "DataRegOp",

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

174 buildCc = True, buildNonCc = True):
175 cCode = carryCode[flagType]
176 vCode = overflowCode[flagType]
177 negBit = 31
178 if flagType == "llbit":
179 negBit = 63
180 if flagType == "saturate":
181 regRegCcCode = calcQCode
154 else:
155 regCcCode = calcCcCode % {
156 "icValue": secondOpRe.sub(regOp2, cCode[1]),
157 "ivValue": secondOpRe.sub(regOp2, vCode),
158 "negBit": negBit
159 }
160 regCode = secondOpRe.sub(regOp2, code)
161 regIop = InstObjParams(mnem, mnem.capitalize() + suffix, "DataRegOp",

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

182 buildCc = True, buildNonCc = True):
183 cCode = carryCode[flagType]
184 vCode = overflowCode[flagType]
185 negBit = 31
186 if flagType == "llbit":
187 negBit = 63
188 if flagType == "saturate":
189 regRegCcCode = calcQCode
190 elif flagType == "ge":
191 immCcCode = calcGECode
182 else:
183 regRegCcCode = calcCcCode % {
184 "icValue": secondOpRe.sub(regRegOp2, cCode[2]),
185 "ivValue": secondOpRe.sub(regRegOp2, vCode),
186 "negBit": negBit
187 }
188 regRegCode = secondOpRe.sub(regRegOp2, code)
189 regRegIop = InstObjParams(mnem, mnem.capitalize() + suffix,

--- 164 unchanged lines hidden ---
192 else:
193 regRegCcCode = calcCcCode % {
194 "icValue": secondOpRe.sub(regRegOp2, cCode[2]),
195 "ivValue": secondOpRe.sub(regRegOp2, vCode),
196 "negBit": negBit
197 }
198 regRegCode = secondOpRe.sub(regRegOp2, code)
199 regRegIop = InstObjParams(mnem, mnem.capitalize() + suffix,

--- 164 unchanged lines hidden ---