From 0116655674a93b1d05b97e531fe1849a5917dc9b Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Jun 2010 12:58:00 -0500 Subject: [PATCH] ARM: Expand the decoding for 32 bit thumb data processing immediate instructions. --- src/arch/arm/isa/thumbdecode.isa | 39 +++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/arch/arm/isa/thumbdecode.isa b/src/arch/arm/isa/thumbdecode.isa index d87374069..d62559b69 100644 --- a/src/arch/arm/isa/thumbdecode.isa +++ b/src/arch/arm/isa/thumbdecode.isa @@ -311,7 +311,44 @@ } 0x2: decode LTOPCODE_15 { 0x0: decode HTOPCODE_9 { - 0x0: WarnUnimpl::Data_processing_modified_immediate(); + 0x0: decode HTOPCODE_8_5 { + 0x0: decode LTRD { + 0xf: decode HTS { + 0x1: WarnUnimpl::tst(); // mod imm + } + default: WarnUnimpl::and(); // mod imm + } + 0x1: WarnUnimpl::bic(); // mod imm + 0x2: decode HTRN { + 0xf: WarnUnimpl::mov(); // mod imm + default: WarnUnimpl::orr(); // mod imm + } + 0x3: decode HTRN { + 0xf: WarnUnimpl::mvn(); // mod imm + default: WarnUnimpl::orn(); // mod imm + } + 0x4: decode LTRD { + 0xf: decode HTS { + 0x1: WarnUnimpl::teq(); // mod imm + } + default: WarnUnimpl::eor(); // mod imm + } + 0x8: decode LTRD { + 0xf: decode HTS { + 0x1: WarnUnimpl::cmn(); // mod imm + } + default: WarnUnimpl::add(); // mod imm + } + 0xa: WarnUnimpl::adc(); // mod imm + 0xb: WarnUnimpl::sbc(); // mod imm + 0xd: decode LTRD { + 0xf: decode HTS { + 0x1: WarnUnimpl::cmp(); // mod imm + } + default: WarnUnimpl::sub(); // mod imm + } + 0xe: WarnUnimpl::rsb(); // mod imm + } 0x1: WarnUnimpl::Data_processing_plain_binary_immediate(); } 0x1: WarnUnimpl::Branches_and_miscellaneous_control();