From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43365) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aWMyl-0006FS-4q for qemu-devel@nongnu.org; Thu, 18 Feb 2016 06:42:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aWMyk-0007e2-6V for qemu-devel@nongnu.org; Thu, 18 Feb 2016 06:42:39 -0500 Received: from mail-vk0-x22c.google.com ([2607:f8b0:400c:c05::22c]:35515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aWMyj-0007dr-OT for qemu-devel@nongnu.org; Thu, 18 Feb 2016 06:42:38 -0500 Received: by mail-vk0-x22c.google.com with SMTP id e6so41477364vkh.2 for ; Thu, 18 Feb 2016 03:42:37 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <20160218095654.GD4403@toto> References: <1455287642-28166-1-git-send-email-edgar.iglesias@gmail.com> <1455287642-28166-9-git-send-email-edgar.iglesias@gmail.com> <20160218095654.GD4403@toto> From: Peter Maydell Date: Thu, 18 Feb 2016 11:42:17 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [PATCH v1 8/9] target-arm: A64: Create Instruction Syndromes for Data Aborts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Edgar E. Iglesias" Cc: Edgar Iglesias , QEMU Developers , qemu-arm , Sergey Fedorov , =?UTF-8?B?QWxleCBCZW5uw6ll?= , Richard Henderson On 18 February 2016 at 09:56, Edgar E. Iglesias wrote: > On Tue, Feb 16, 2016 at 07:13:32PM +0000, Peter Maydell wrote: >> I think this patch also would be simpler if the encoded info >> put in with the TBs was just the syndrome register, rather >> than some other encoding. > > My first try was to only pass the bits needed for the iss > (i.e not the full data abort syndrome). We don't have all > the info needed at translation time to create the full > syndrome (e.g stage2 trap? stage2 trap while stage1 PTW, etc). > > But we could maybe create as much of the data abort syndrome > as possible at translation time and then have the exception > handling code add the missing bits. We can then pass the > preliminary syndrome from translation time to exception time > in the std syndrome format. I can have a look and see what I > can do if that makes more sense. Yep, that was basically what I had in mind. Am I right in thinking that at translate time we capture: IL ISV SAS SSE SRT SF AR and then at exception time we determine: EC FnV EA CM S1PTW WnR DFSC ? In that case I think you could reasonably have the info stored with the TBs be "template syndrome >> 14" (since bits [13:0] are all info determined at exception-time). The only reason for doing this is that the encoded data is stored as sleb128 deltas between lines so keeping the values numerically smaller should make them take up a bit less space. (I have no idea how significant the space saving would be.) You should then be able to just have restore_state_to_opc() write straight to env->exception.syndrome rather than needing a new field in the cpu state. thanks -- PMM