From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25088 invoked by alias); 1 May 2012 23:05:05 -0000 Received: (qmail 24765 invoked by uid 22791); 1 May 2012 23:04:56 -0000 X-SWARE-Spam-Status: No, hits=-4.2 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_NO,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,TW_AV,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 01 May 2012 23:04:39 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 27AA81C6295; Tue, 1 May 2012 19:04:38 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Hv3wpixFmuTG; Tue, 1 May 2012 19:04:38 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 8B6D11C6278; Tue, 1 May 2012 19:04:37 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 4D954145616; Tue, 1 May 2012 16:04:29 -0700 (PDT) From: Joel Brobecker To: gdb-patches@sourceware.org Cc: Joel Brobecker Subject: [RFA 2/2] [x86/x86_64] Segment registers are 16 bits long (not 32bits) Date: Tue, 01 May 2012 23:05:00 -0000 Message-Id: <1335913461-1628-3-git-send-email-brobecker@adacore.com> In-Reply-To: <1335913461-1628-1-git-send-email-brobecker@adacore.com> References: <1335913461-1628-1-git-send-email-brobecker@adacore.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-05/txt/msg00008.txt.bz2 This patch changes the description of all segment registers for x86 and x86_64 targets to 16 bits. On GNU/Linux systems, this discrepancy appears to be harmless. But, on some Windows systems, the wider size lead us to read the value of those registers as 4-byte values instead of 2 bytes values, resulting in incorrect results. gdb/changeLog: * features/i386/32bit-core.xml, features/i386/64bit-core.xml, features/i386/x32-core.xml: Set bitsize and type of all segment registers to 16 and "int16" respectively. * features/i386/amd64-avx-linux.c, features/i386/amd64-avx.c, features/i386/amd64-linux.c, features/i386/amd64.c, features/i386/i386-avx-linux.c, features/i386/i386-avx.c, features/i386/i386-linux.c, features/i386/i386-mmx-linux.c, features/i386/i386-mmx.c, features/i386/i386.c, features/i386/x32-avx-linux.c, features/i386/x32-avx.c, features/i386/x32-linux.c, features/i386/x32.c: Regenerate. * regformats/i386/amd64-avx-linux.dat, regformats/i386/amd64-avx.dat, regformats/i386/amd64-linux.dat, regformats/i386/amd64.dat, regformats/i386/i386-avx-linux.dat, regformats/i386/i386-avx.dat, regformats/i386/i386-linux.dat, regformats/i386/i386-mmx-linux.dat, regformats/i386/i386-mmx.dat, regformats/i386/i386.dat, regformats/i386/x32-avx-linux.dat, regformats/i386/x32-avx.dat, regformats/i386/x32-linux.dat, regformats/i386/x32.dat: Regenerate. OK to commit? Thanks, -- Joel --- gdb/features/i386/32bit-core.xml | 12 ++++++------ gdb/features/i386/64bit-core.xml | 12 ++++++------ gdb/features/i386/amd64-avx-linux.c | 12 ++++++------ gdb/features/i386/amd64-avx.c | 12 ++++++------ gdb/features/i386/amd64-linux.c | 12 ++++++------ gdb/features/i386/amd64.c | 12 ++++++------ gdb/features/i386/i386-avx-linux.c | 12 ++++++------ gdb/features/i386/i386-avx.c | 12 ++++++------ gdb/features/i386/i386-linux.c | 12 ++++++------ gdb/features/i386/i386-mmx-linux.c | 12 ++++++------ gdb/features/i386/i386-mmx.c | 12 ++++++------ gdb/features/i386/i386.c | 12 ++++++------ gdb/features/i386/x32-avx-linux.c | 12 ++++++------ gdb/features/i386/x32-avx.c | 12 ++++++------ gdb/features/i386/x32-core.xml | 12 ++++++------ gdb/features/i386/x32-linux.c | 12 ++++++------ gdb/features/i386/x32.c | 12 ++++++------ gdb/regformats/i386/amd64-avx-linux.dat | 12 ++++++------ gdb/regformats/i386/amd64-avx.dat | 12 ++++++------ gdb/regformats/i386/amd64-linux.dat | 12 ++++++------ gdb/regformats/i386/amd64.dat | 12 ++++++------ gdb/regformats/i386/i386-avx-linux.dat | 12 ++++++------ gdb/regformats/i386/i386-avx.dat | 12 ++++++------ gdb/regformats/i386/i386-linux.dat | 12 ++++++------ gdb/regformats/i386/i386-mmx-linux.dat | 12 ++++++------ gdb/regformats/i386/i386-mmx.dat | 12 ++++++------ gdb/regformats/i386/i386.dat | 12 ++++++------ gdb/regformats/i386/x32-avx-linux.dat | 12 ++++++------ gdb/regformats/i386/x32-avx.dat | 12 ++++++------ gdb/regformats/i386/x32-linux.dat | 12 ++++++------ gdb/regformats/i386/x32.dat | 12 ++++++------ 31 files changed, 186 insertions(+), 186 deletions(-) diff --git a/gdb/features/i386/32bit-core.xml b/gdb/features/i386/32bit-core.xml index e7742ef..5912504 100644 --- a/gdb/features/i386/32bit-core.xml +++ b/gdb/features/i386/32bit-core.xml @@ -38,12 +38,12 @@ - - - - - - + + + + + + diff --git a/gdb/features/i386/64bit-core.xml b/gdb/features/i386/64bit-core.xml index 6dd6cdb..1380ec1 100644 --- a/gdb/features/i386/64bit-core.xml +++ b/gdb/features/i386/64bit-core.xml @@ -46,12 +46,12 @@ - - - - - - + + + + + + diff --git a/gdb/features/i386/amd64-avx-linux.c b/gdb/features/i386/amd64-avx-linux.c index 81e8ca7..b799e49 100644 --- a/gdb/features/i386/amd64-avx-linux.c +++ b/gdb/features/i386/amd64-avx-linux.c @@ -55,12 +55,12 @@ initialize_tdesc_amd64_avx_linux (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/amd64-avx.c b/gdb/features/i386/amd64-avx.c index d69d427..96b2ec3 100644 --- a/gdb/features/i386/amd64-avx.c +++ b/gdb/features/i386/amd64-avx.c @@ -53,12 +53,12 @@ initialize_tdesc_amd64_avx (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/amd64-linux.c b/gdb/features/i386/amd64-linux.c index db97118..bf9bb49 100644 --- a/gdb/features/i386/amd64-linux.c +++ b/gdb/features/i386/amd64-linux.c @@ -55,12 +55,12 @@ initialize_tdesc_amd64_linux (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/amd64.c b/gdb/features/i386/amd64.c index 951b36d..4aa2b12 100644 --- a/gdb/features/i386/amd64.c +++ b/gdb/features/i386/amd64.c @@ -53,12 +53,12 @@ initialize_tdesc_amd64 (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/i386-avx-linux.c b/gdb/features/i386/i386-avx-linux.c index 038073e..cae4f0b 100644 --- a/gdb/features/i386/i386-avx-linux.c +++ b/gdb/features/i386/i386-avx-linux.c @@ -47,12 +47,12 @@ initialize_tdesc_i386_avx_linux (void) tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32"); tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr"); tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 10, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 11, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 12, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 13, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 14, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 15, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/i386-avx.c b/gdb/features/i386/i386-avx.c index cdfebf8..bb3ba86 100644 --- a/gdb/features/i386/i386-avx.c +++ b/gdb/features/i386/i386-avx.c @@ -45,12 +45,12 @@ initialize_tdesc_i386_avx (void) tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32"); tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr"); tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 10, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 11, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 12, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 13, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 14, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 15, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/i386-linux.c b/gdb/features/i386/i386-linux.c index cdc41a8..c6a47ad 100644 --- a/gdb/features/i386/i386-linux.c +++ b/gdb/features/i386/i386-linux.c @@ -47,12 +47,12 @@ initialize_tdesc_i386_linux (void) tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32"); tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr"); tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 10, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 11, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 12, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 13, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 14, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 15, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/i386-mmx-linux.c b/gdb/features/i386/i386-mmx-linux.c index 872826a..dc3bdc3 100644 --- a/gdb/features/i386/i386-mmx-linux.c +++ b/gdb/features/i386/i386-mmx-linux.c @@ -46,12 +46,12 @@ initialize_tdesc_i386_mmx_linux (void) tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32"); tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr"); tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 10, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 11, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 12, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 13, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 14, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 15, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/i386-mmx.c b/gdb/features/i386/i386-mmx.c index 7ca2467..7710f7b 100644 --- a/gdb/features/i386/i386-mmx.c +++ b/gdb/features/i386/i386-mmx.c @@ -44,12 +44,12 @@ initialize_tdesc_i386_mmx (void) tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32"); tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr"); tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 10, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 11, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 12, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 13, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 14, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 15, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/i386.c b/gdb/features/i386/i386.c index b1de96f..0befb45 100644 --- a/gdb/features/i386/i386.c +++ b/gdb/features/i386/i386.c @@ -45,12 +45,12 @@ initialize_tdesc_i386 (void) tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32"); tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr"); tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 10, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 11, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 12, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 13, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 14, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 15, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/x32-avx-linux.c b/gdb/features/i386/x32-avx-linux.c index b01013a..5a6edf1 100644 --- a/gdb/features/i386/x32-avx-linux.c +++ b/gdb/features/i386/x32-avx-linux.c @@ -55,12 +55,12 @@ initialize_tdesc_x32_avx_linux (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/x32-avx.c b/gdb/features/i386/x32-avx.c index af235cd..a3d01e1 100644 --- a/gdb/features/i386/x32-avx.c +++ b/gdb/features/i386/x32-avx.c @@ -53,12 +53,12 @@ initialize_tdesc_x32_avx (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/x32-core.xml b/gdb/features/i386/x32-core.xml index 1e41417..bb64fd6 100644 --- a/gdb/features/i386/x32-core.xml +++ b/gdb/features/i386/x32-core.xml @@ -46,12 +46,12 @@ - - - - - - + + + + + + diff --git a/gdb/features/i386/x32-linux.c b/gdb/features/i386/x32-linux.c index d34a2a9..e74b41c 100644 --- a/gdb/features/i386/x32-linux.c +++ b/gdb/features/i386/x32-linux.c @@ -55,12 +55,12 @@ initialize_tdesc_x32_linux (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/features/i386/x32.c b/gdb/features/i386/x32.c index 755ec69..8e5cbd8 100644 --- a/gdb/features/i386/x32.c +++ b/gdb/features/i386/x32.c @@ -53,12 +53,12 @@ initialize_tdesc_x32 (void) tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64"); tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "uint64"); tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags"); - tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32"); - tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32"); + tdesc_create_reg (feature, "cs", 18, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ss", 19, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "ds", 20, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "es", 21, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "fs", 22, 1, NULL, 16, "int16"); + tdesc_create_reg (feature, "gs", 23, 1, NULL, 16, "int16"); tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext"); tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext"); diff --git a/gdb/regformats/i386/amd64-avx-linux.dat b/gdb/regformats/i386/amd64-avx-linux.dat index 4491313..ded0117 100644 --- a/gdb/regformats/i386/amd64-avx-linux.dat +++ b/gdb/regformats/i386/amd64-avx-linux.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/amd64-avx.dat b/gdb/regformats/i386/amd64-avx.dat index 62cfdd7..713d691 100644 --- a/gdb/regformats/i386/amd64-avx.dat +++ b/gdb/regformats/i386/amd64-avx.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/amd64-linux.dat b/gdb/regformats/i386/amd64-linux.dat index 02a2c78..fed8185 100644 --- a/gdb/regformats/i386/amd64-linux.dat +++ b/gdb/regformats/i386/amd64-linux.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/amd64.dat b/gdb/regformats/i386/amd64.dat index d589218..90f6005 100644 --- a/gdb/regformats/i386/amd64.dat +++ b/gdb/regformats/i386/amd64.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/i386-avx-linux.dat b/gdb/regformats/i386/i386-avx-linux.dat index e9eb951..a943ead 100644 --- a/gdb/regformats/i386/i386-avx-linux.dat +++ b/gdb/regformats/i386/i386-avx-linux.dat @@ -12,12 +12,12 @@ expedite:ebp,esp,eip 32:edi 32:eip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/i386-avx.dat b/gdb/regformats/i386/i386-avx.dat index 4a19a2b..aec41c5 100644 --- a/gdb/regformats/i386/i386-avx.dat +++ b/gdb/regformats/i386/i386-avx.dat @@ -12,12 +12,12 @@ expedite:ebp,esp,eip 32:edi 32:eip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/i386-linux.dat b/gdb/regformats/i386/i386-linux.dat index 6fef8d9..621870c 100644 --- a/gdb/regformats/i386/i386-linux.dat +++ b/gdb/regformats/i386/i386-linux.dat @@ -12,12 +12,12 @@ expedite:ebp,esp,eip 32:edi 32:eip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/i386-mmx-linux.dat b/gdb/regformats/i386/i386-mmx-linux.dat index 9dcf223..6de7dca 100644 --- a/gdb/regformats/i386/i386-mmx-linux.dat +++ b/gdb/regformats/i386/i386-mmx-linux.dat @@ -12,12 +12,12 @@ expedite:ebp,esp,eip 32:edi 32:eip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/i386-mmx.dat b/gdb/regformats/i386/i386-mmx.dat index 38a95d4..393e71a 100644 --- a/gdb/regformats/i386/i386-mmx.dat +++ b/gdb/regformats/i386/i386-mmx.dat @@ -12,12 +12,12 @@ expedite:ebp,esp,eip 32:edi 32:eip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/i386.dat b/gdb/regformats/i386/i386.dat index 923d879..5b2ae8a 100644 --- a/gdb/regformats/i386/i386.dat +++ b/gdb/regformats/i386/i386.dat @@ -12,12 +12,12 @@ expedite:ebp,esp,eip 32:edi 32:eip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/x32-avx-linux.dat b/gdb/regformats/i386/x32-avx-linux.dat index 1203806..8dc1122 100644 --- a/gdb/regformats/i386/x32-avx-linux.dat +++ b/gdb/regformats/i386/x32-avx-linux.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/x32-avx.dat b/gdb/regformats/i386/x32-avx.dat index f13bf28..fd8c8b3 100644 --- a/gdb/regformats/i386/x32-avx.dat +++ b/gdb/regformats/i386/x32-avx.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/x32-linux.dat b/gdb/regformats/i386/x32-linux.dat index 6eda64a..85c34c7 100644 --- a/gdb/regformats/i386/x32-linux.dat +++ b/gdb/regformats/i386/x32-linux.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 diff --git a/gdb/regformats/i386/x32.dat b/gdb/regformats/i386/x32.dat index 6c63a8a..7ae7ac1 100644 --- a/gdb/regformats/i386/x32.dat +++ b/gdb/regformats/i386/x32.dat @@ -20,12 +20,12 @@ expedite:rbp,rsp,rip 64:r15 64:rip 32:eflags -32:cs -32:ss -32:ds -32:es -32:fs -32:gs +16:cs +16:ss +16:ds +16:es +16:fs +16:gs 80:st0 80:st1 80:st2 -- 1.7.1