mem.isa (7125:212ad902f257) mem.isa (7126:0f3f378d2b7f)
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
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
453def format ArmLoadMemory(memacc_code, ea_code = {{ EA = Rn + disp; }},
454 mem_flags = [], inst_flags = []) {{
455 ea_code = ArmGenericCodeSubs(ea_code)
456 memacc_code = ArmGenericCodeSubs(memacc_code)
457 (header_output, decoder_output, decode_block, exec_output) = \
458 LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags,
459 decode_template = BasicDecode,
460 exec_template_base = 'Load')
461}};
462
463def format ArmStoreMemory(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 exec_template_base = 'Store')
470}};
471
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