From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53997) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YyovL-0004ve-46 for qemu-devel@nongnu.org; Sat, 30 May 2015 18:08:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YyovJ-0004MC-VJ for qemu-devel@nongnu.org; Sat, 30 May 2015 18:08:10 -0400 Received: from mail-ob0-x235.google.com ([2607:f8b0:4003:c01::235]:36107) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YyovJ-0004M6-R2 for qemu-devel@nongnu.org; Sat, 30 May 2015 18:08:09 -0400 Received: by obbea2 with SMTP id ea2so80369680obb.3 for ; Sat, 30 May 2015 15:08:09 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1432847398-9969-1-git-send-email-aurelioremonda@gmail.com> Date: Sat, 30 May 2015 19:08:09 -0300 Message-ID: From: aurelio remonda Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [PATCH] Target-arm: Add the Cortex-M4 CPU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Crosthwaite Cc: Liviu Ionescu , Martin Galvan , Daniel Gutson , "qemu-devel@nongnu.org Developers" , Peter Maydell >> if (op < 4) { >> /* Saturating add/subtract. */ >> + if (!(arm_dc_feature(s, ARM_FEATURE_THUMB_DSP))){ >> + /* qsub, qadd, qdadd, qdsub are DSP instructions. */ >> + goto illegal_op; >> + } >> tmp = load_reg(s, rn); >> tmp2 = load_reg(s, rm); >> if (op & 1) >> @@ -9559,6 +9598,12 @@ static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw >> gen_revsh(tmp); >> break; >> case 0x10: /* sel */ >> + if (!(arm_dc_feature(s, ARM_FEATURE_THUMB_DSP))){ >> + /* sel is a DSP instruction. */ >> + /* need to free this so there's no TCG temporary leak */ >> + tcg_temp_free_i32(tmp); >> + goto illegal_op; >> + } >> tmp2 = load_reg(s, rm); >> tmp3 = tcg_temp_new_i32(); >> tcg_gen_ld_i32(tmp3, cpu_env, offsetof(CPUARMState, GE)); >> @@ -9624,6 +9669,15 @@ static int disas_thumb2_insn(CPUARMState *env, DisasContext *s, uint16_t insn_hw >> } >> break; >> case 1: /* 16 x 16 -> 32 */ >> + if (!(arm_dc_feature(s, ARM_FEATURE_THUMB_DSP))){ >> + /* smlabb, smlabt, smlatb, smlatt, smulbb, smulbt, smultt >> + * and smultb are DSP instructions >> + */ >> + /* need to free this so there's no TCG temporary leak */ > > Comment un-needed. Why do you think it's not needed? Any comments are helpful as long as they're correct. Thanks