From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40208) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aRhWG-00027O-LD for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:37:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aRhWF-00065H-Tx for qemu-devel@nongnu.org; Fri, 05 Feb 2016 09:37:56 -0500 From: Peter Maydell Date: Fri, 5 Feb 2016 14:37:44 +0000 Message-Id: <1454683067-16001-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 0/3] target-arm: Fix IL in syndromes for FP and copro traps List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, patches@linaro.org This series corrects a bug I noticed while reading the code. In syndrome register values, the IL bit indicates the instruction length, and is 1 for 4-byte instructions and 0 for 2-byte instructions. All A64 and A32 instructions are 4-byte, but Thumb instructions may be either 2 or 4 bytes long. Unfortunately we named the parameter to the syn_* functions for constructing syndromes "is_thumb", which falsely implies that it should be set for all Thumb instructions, rather than only the 16-bit ones. Fix the parameter names to a less confusing "is_16bit", and correct the places where we should be passing in 'false' rather than 's->thumb' for syndrome construction, which are the coprocessor, VFP and Neon instruction traps (all these are always 32-bit for Thumb). The calls to syn_aa32_svc() and syn_aa32_bkpt() correctly still use s->thumb, because for SVC and BKPT the Thumb encoding is 16 bits but the ARM encoding is 32 bits. Peter Maydell (3): target-arm: Correct misleading 'is_thumb' syn_* parameter names target-arm: Fix IL bit reported for Thumb coprocessor traps target-arm: Fix IL bit reported for Thumb VFP and Neon traps target-arm/internals.h | 28 ++++++++++++++-------------- target-arm/translate.c | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) -- 1.9.1