mem.isa (7278:562ced200e54) mem.isa (7279:157b02cc0ba1)
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

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

145 caseVal = (p << 3) + (u << 2) + (i << 1) + (w << 0)
146 decode = '''
147 case %#x:
148 return new '''% caseVal
149 if add:
150 addStr = "true"
151 else:
152 addStr = "false"
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

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

145 caseVal = (p << 3) + (u << 2) + (i << 1) + (w << 0)
146 decode = '''
147 case %#x:
148 return new '''% caseVal
149 if add:
150 addStr = "true"
151 else:
152 addStr = "false"
153 if d:
154 dests = "RT & ~1, RT | 1"
155 else:
156 dests = "RT"
153 if i:
154 if load:
155 if d:
156 className = loadDoubleImmClassName(post, add, writeback)
157 else:
158 className = loadImmClassName(post, add, writeback, \
159 size=size, sign=sign, \
160 user=user)
161 else:
162 if d:
163 className = storeDoubleImmClassName(post, add, writeback)
164 else:
165 className = storeImmClassName(post, add, writeback, \
166 size=size, sign=sign, \
167 user=user)
157 if i:
158 if load:
159 if d:
160 className = loadDoubleImmClassName(post, add, writeback)
161 else:
162 className = loadImmClassName(post, add, writeback, \
163 size=size, sign=sign, \
164 user=user)
165 else:
166 if d:
167 className = storeDoubleImmClassName(post, add, writeback)
168 else:
169 className = storeImmClassName(post, add, writeback, \
170 size=size, sign=sign, \
171 user=user)
168 decode += ("%s(machInst, RT, RN, %s, imm);\n" % \
169 (className, addStr))
172 decode += ("%s(machInst, %s, RN, %s, imm);\n" % \
173 (className, dests, addStr))
170 else:
171 if load:
172 if d:
173 className = loadDoubleRegClassName(post, add, writeback)
174 else:
175 className = loadRegClassName(post, add, writeback, \
176 size=size, sign=sign, \
177 user=user)
178 else:
179 if d:
180 className = storeDoubleRegClassName(post, add, writeback)
181 else:
182 className = storeRegClassName(post, add, writeback, \
183 size=size, sign=sign, \
184 user=user)
174 else:
175 if load:
176 if d:
177 className = loadDoubleRegClassName(post, add, writeback)
178 else:
179 className = loadRegClassName(post, add, writeback, \
180 size=size, sign=sign, \
181 user=user)
182 else:
183 if d:
184 className = storeDoubleRegClassName(post, add, writeback)
185 else:
186 className = storeRegClassName(post, add, writeback, \
187 size=size, sign=sign, \
188 user=user)
185 decode += ("%s(machInst, RT, RN, %s, 0, LSL, RM);\n" % \
186 (className, addStr))
189 decode += ("%s(machInst, %s, RN, %s, 0, LSL, RM);\n" % \
190 (className, dests, addStr))
187 return decode
188
189 def decodePuiw(load, d, size=4, sign=False):
190 global decodePuiwCase
191 decode = "switch (puiw) {\n"
192 for p in (0, 1):
193 for u in (0, 1):
194 for i in (0, 1):

--- 749 unchanged lines hidden ---
191 return decode
192
193 def decodePuiw(load, d, size=4, sign=False):
194 global decodePuiwCase
195 decode = "switch (puiw) {\n"
196 for p in (0, 1):
197 for u in (0, 1):
198 for i in (0, 1):

--- 749 unchanged lines hidden ---