From patchwork Fri Aug 23 19:09:03 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Markus X-Patchwork-Id: 269524 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id BB2472C00A4 for ; Sat, 24 Aug 2013 05:09:32 +1000 (EST) Received: from localhost ([::1]:38327 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCwji-0000xk-0S for incoming@patchwork.ozlabs.org; Fri, 23 Aug 2013 15:09:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCwjO-0000xZ-QT for qemu-devel@nongnu.org; Fri, 23 Aug 2013 15:09:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VCwjI-0004SE-Sa for qemu-devel@nongnu.org; Fri, 23 Aug 2013 15:09:10 -0400 Received: from mo6-p00-ob.rzone.de ([2a01:238:20a:202:5300::1]:15113) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VCwjI-0004Qt-Le for qemu-devel@nongnu.org; Fri, 23 Aug 2013 15:09:04 -0400 X-RZG-AUTH: :OGMGfEG7W/Jia0H4RdpQ6UBM+orSOYYzpexsp56HbPjosKXQJaSMgJFcBBQMZJXp4EpM2NspCQ== X-RZG-CLASS-ID: mo00 Received: from [192.168.124.122] (x2f15bf0.dyn.telefonica.de [2.241.91.240]) by smtp.strato.de (RZmta 31.45 DYNA|AUTH) with (ECDHE-RSA-AES256-SHA encrypted) ESMTPA id C04539p7NHiBfb ; Fri, 23 Aug 2013 21:08:58 +0200 (CEST) Message-ID: <5217B34F.4090508@markus-regensburg.de> Date: Fri, 23 Aug 2013 21:09:03 +0200 From: Tobias Markus User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130806 Thunderbird/17.0.8 MIME-Version: 1.0 To: qemu-devel@nongnu.org X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a01:238:20a:202:5300::1 Cc: Richard Henderson Subject: [Qemu-devel] [qemu-devel] [PATCH v2] target-i386: Fix segment cache dump X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org When in Long Mode, cpu_x86_seg_cache() logs "DS16" because the Default operation size bit (D/B bit) is not set for Long Mode Data Segments since there are only Data Segments in Long Mode and no explicit 16/32/64-bit Descriptors. This patch fixes this by checking the Long Mode Active bit of the hidden flags variable and logging "DS" if it is set. (I.e. in Long Mode all Data Segments are logged as "DS") Signed-off-by: Tobias Markus Reviewed-by: Richard Henderson --- v2: * Fix line wrapping as suggested in IRC * Break the line Note that alternatively, Data Segments in Long Mode could be logged as "DS64" to avoid confusion about the missing 64 postfix. (But that would be, strictly speaking, wrong because there are only DSs and no DS16/32/64 in Long Mode.) PS: This is my first contribution to an Open Source Project and I would be very happy about constructive feedback, especially about possible wrong line wrapping. target-i386/helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target-i386/helper.c b/target-i386/helper.c index bf3e2ac..db2f04f 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -147,7 +147,9 @@ cpu_x86_dump_seg_cache(CPUX86State *env, FILE *f, fprintf_function cpu_fprintf, cpu_fprintf(f, " [%c%c", (sc->flags & DESC_C_MASK) ? 'C' : '-', (sc->flags & DESC_R_MASK) ? 'R' : '-'); } else { - cpu_fprintf(f, (sc->flags & DESC_B_MASK) ? "DS " : "DS16"); + cpu_fprintf(f, (sc->flags & DESC_B_MASK || + env->hflags & HF_LMA_MASK) + ? "DS " : "DS16"); cpu_fprintf(f, " [%c%c", (sc->flags & DESC_E_MASK) ? 'E' : '-', (sc->flags & DESC_W_MASK) ? 'W' : '-'); }