From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VudxG-0002AP-68 for qemu-devel@nongnu.org; Sun, 22 Dec 2013 03:00:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VudxC-0000i9-1C for qemu-devel@nongnu.org; Sun, 22 Dec 2013 03:00:06 -0500 Received: from mail-pb0-f41.google.com ([209.85.160.41]:56094) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VudxB-0000gB-Rp for qemu-devel@nongnu.org; Sun, 22 Dec 2013 03:00:01 -0500 Received: by mail-pb0-f41.google.com with SMTP id jt11so4250653pbb.28 for ; Sun, 22 Dec 2013 00:00:01 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <1386060535-15908-1-git-send-email-s.fedorov@samsung.com> <1386060535-15908-19-git-send-email-s.fedorov@samsung.com> <52B29FE5.40705@samsung.com> <52B4504C.7000707@samsung.com> From: Peter Maydell Date: Sun, 22 Dec 2013 07:59:40 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [RFC PATCH 18/21] target-arm: switch banked CP registers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Crosthwaite Cc: Johannes Winter , a.basov@samsung.com, Fedorov Sergey , "qemu-devel@nongnu.org Developers" On 22 December 2013 01:08, Peter Crosthwaite wrote: > On Sat, Dec 21, 2013 at 12:33 AM, Peter Maydell > wrote: >> On 20 December 2013 14:12, Fedorov Sergey wrote: >>> I've briefly looked at the v8 ARM ARM. As I can see there is no banked >>> system control registers in AArch64. Seems the concept is changed to provide >>> separate registers for each meaningful execution level. Please, correct me >>> if I am wrong. > > Isn't that just another definition of banking? No: the crn/crm/op values differ for eg ESR_EL1, ESR_EL2 and ESR_EL3, and if you're in EL3 you can access all three of them (the access permissions are what stop EL1 from messing with EL3's ESR). Banked registers are where the same access instruction reads or writes different state depending on the value of something else (whether we're secure/nonsecure, in this case). thanks -- PMM