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 |
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 --- |