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 --- 436 unchanged lines hidden (view full) --- 445 "ldrh" : loadImmClassName(False, True, False, size=2), 446 "strh" : storeImmClassName(False, True, False, size=2), 447 "ldrb" : loadImmClassName(False, True, False, size=1), 448 "strb" : storeImmClassName(False, True, False, size=1), 449 } 450 decode_block = decode % classNames 451}}; 452 |
453def format Thumb16MemLit() {{ 454 decode_block = ''' 455 { 456 const uint32_t rt = bits(machInst, 10, 8); 457 const uint32_t imm8 = bits(machInst, 7, 0); 458 return new %s(machInst, rt, INTREG_PC, true, imm8 << 2); 459 } 460 ''' % loadImmClassName(False, True, False) 461}}; 462 |
463def format ArmLoadMemory(memacc_code, ea_code = {{ EA = Rn + disp; }}, 464 mem_flags = [], inst_flags = []) {{ 465 ea_code = ArmGenericCodeSubs(ea_code) 466 memacc_code = ArmGenericCodeSubs(memacc_code) 467 (header_output, decoder_output, decode_block, exec_output) = \ 468 LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags, 469 decode_template = BasicDecode, 470 exec_template_base = 'Load') 471}}; 472 473def format ArmStoreMemory(memacc_code, ea_code = {{ EA = Rn + disp; }}, 474 mem_flags = [], inst_flags = []) {{ 475 ea_code = ArmGenericCodeSubs(ea_code) 476 memacc_code = ArmGenericCodeSubs(memacc_code) 477 (header_output, decoder_output, decode_block, exec_output) = \ 478 LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags, 479 exec_template_base = 'Store') 480}}; 481 |