From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33426) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VnzVS-0002LT-5K for qemu-devel@nongnu.org; Tue, 03 Dec 2013 18:35:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VnzVM-0006l6-QK for qemu-devel@nongnu.org; Tue, 03 Dec 2013 18:35:54 -0500 Received: from mail-yh0-f41.google.com ([209.85.213.41]:63276) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VnzVM-0006jr-ML for qemu-devel@nongnu.org; Tue, 03 Dec 2013 18:35:48 -0500 Received: by mail-yh0-f41.google.com with SMTP id f11so10857385yha.0 for ; Tue, 03 Dec 2013 15:34:50 -0800 (PST) Sender: Richard Henderson Message-ID: <529E6A92.6040207@twiddle.net> Date: Wed, 04 Dec 2013 12:34:42 +1300 From: Richard Henderson MIME-Version: 1.0 References: <1386107477-24165-1-git-send-email-peter.maydell@linaro.org> <1386107477-24165-2-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1386107477-24165-2-git-send-email-peter.maydell@linaro.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/12] target-arm: Split A64 from A32/T32 gen_intermediate_code_internal() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell , qemu-devel@nongnu.org Cc: patches@linaro.org, Michael Matz , Alexander Graf , C Fontana , Dirk Mueller , Laurent Desnogues , kvmarm@lists.cs.columbia.edu On 12/04/2013 10:51 AM, Peter Maydell wrote: > The A32/T32 gen_intermediate_code_internal() is complicated because it > has to deal with: > * conditionally executed instructions > * Thumb IT blocks > * kernel helper page > * M profile exception-exit special casing > > None of these apply to A64, so putting the "this is A64 so > call the A64 decoder" check in the middle of the A32/T32 > loop is confusing and means the A64 decoder's handling of > things like conditional jump and singlestepping has to take > account of the conditional-execution jumps the main loop > might emit. > > Refactor the code to give A64 its own gen_intermediate_code_internal > function instead. > > Signed-off-by: Peter Maydell > --- > target-arm/translate-a64.c | 209 ++++++++++++++++++++++++++++++++++++++++++-- > target-arm/translate.c | 62 +++++-------- > target-arm/translate.h | 20 ++++- > 3 files changed, 246 insertions(+), 45 deletions(-) Reviewed-by: Richard Henderson r~