From a86491fbf27588356b8a4463d967b6e6358d83cb Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Jun 2010 12:58:01 -0500 Subject: ARM: Decode 16 bit thumb PC relative memory instructions. --- src/arch/arm/isa/formats/mem.isa | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/arch/arm/isa/formats/mem.isa') diff --git a/src/arch/arm/isa/formats/mem.isa b/src/arch/arm/isa/formats/mem.isa index edefb3325..2935890c2 100644 --- a/src/arch/arm/isa/formats/mem.isa +++ b/src/arch/arm/isa/formats/mem.isa @@ -450,6 +450,16 @@ def format Thumb16MemImm() {{ decode_block = decode % classNames }}; +def format Thumb16MemLit() {{ + decode_block = ''' + { + const uint32_t rt = bits(machInst, 10, 8); + const uint32_t imm8 = bits(machInst, 7, 0); + return new %s(machInst, rt, INTREG_PC, true, imm8 << 2); + } + ''' % loadImmClassName(False, True, False) +}}; + def format ArmLoadMemory(memacc_code, ea_code = {{ EA = Rn + disp; }}, mem_flags = [], inst_flags = []) {{ ea_code = ArmGenericCodeSubs(ea_code) -- cgit v1.2.3