mem.isa (7290:ea9189fbb84f) mem.isa (7293:a907ebdb7ee9)
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

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

250 }
251 ''' % {
252 "ldrex" : "LDREX_" + loadImmClassName(False, True, False, size=4),
253 "ldrexb" : "LDREXB_" + loadImmClassName(False, True, False, size=1),
254 "ldrexh" : "LDREXH_" + loadImmClassName(False, True, False, size=2)
255 }
256}};
257
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

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

250 }
251 ''' % {
252 "ldrex" : "LDREX_" + loadImmClassName(False, True, False, size=4),
253 "ldrexb" : "LDREXB_" + loadImmClassName(False, True, False, size=1),
254 "ldrexh" : "LDREXH_" + loadImmClassName(False, True, False, size=2)
255 }
256}};
257
258def format Thumb32SrsRfe() {{
259 decode_block = '''
260 {
261 if (bits(machInst, 20) == 1) {
262 const bool add = (bits(machInst, 24, 23) == 0x3);
263 // post == add
264 const bool wb = (bits(machInst, 21) == 1);
265 const IntRegIndex rn =
266 (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
267 if (!add && !wb) {
268 return new %(rfe)s(machInst, rn, RfeOp::DecrementBefore, wb);
269 } else if (add && !wb) {
270 return new %(rfe_u)s(machInst, rn, RfeOp::IncrementAfter, wb);
271 } else if (!add && wb) {
272 return new %(rfe_w)s(machInst, rn, RfeOp::DecrementBefore, wb);
273 } else {
274 return new %(rfe_uw)s(machInst, rn, RfeOp::IncrementAfter, wb);
275 }
276 } else {
277 return new WarnUnimplemented("srs", machInst);
278 }
279 }
280 ''' % {
281 "rfe" : "RFE_" + loadImmClassName(False, False, False, 8),
282 "rfe_u" : "RFE_" + loadImmClassName(True, True, False, 8),
283 "rfe_w" : "RFE_" + loadImmClassName(False, False, True, 8),
284 "rfe_uw" : "RFE_" + loadImmClassName(True, True, True, 8)
285 }
286}};
287
258def format Thumb32LdrStrDExTbh() {{
259 decode_block = '''
260 {
261 const uint32_t op1 = bits(machInst, 24, 23);
262 const uint32_t op2 = bits(machInst, 21, 20);
263 const uint32_t op3 = bits(machInst, 7, 4);
264 const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
265 const IntRegIndex rt = (IntRegIndex)(uint32_t)bits(machInst, 15, 12);

--- 731 unchanged lines hidden ---
288def format Thumb32LdrStrDExTbh() {{
289 decode_block = '''
290 {
291 const uint32_t op1 = bits(machInst, 24, 23);
292 const uint32_t op2 = bits(machInst, 21, 20);
293 const uint32_t op3 = bits(machInst, 7, 4);
294 const IntRegIndex rn = (IntRegIndex)(uint32_t)bits(machInst, 19, 16);
295 const IntRegIndex rt = (IntRegIndex)(uint32_t)bits(machInst, 15, 12);

--- 731 unchanged lines hidden ---