This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 2/2] [x86/x86_64] Segment registers are 16 bits long (not 32bits)
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Cc: Joel Brobecker <brobecker at adacore dot com>
- Date: Tue, 1 May 2012 16:04:21 -0700
- Subject: [RFA 2/2] [x86/x86_64] Segment registers are 16 bits long (not 32bits)
- References: <1335913461-1628-1-git-send-email-brobecker@adacore.com>
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 @@
<reg name="eip" bitsize="32" type="code_ptr"/>
<reg name="eflags" bitsize="32" type="i386_eflags"/>
- <reg name="cs" bitsize="32" type="int32"/>
- <reg name="ss" bitsize="32" type="int32"/>
- <reg name="ds" bitsize="32" type="int32"/>
- <reg name="es" bitsize="32" type="int32"/>
- <reg name="fs" bitsize="32" type="int32"/>
- <reg name="gs" bitsize="32" type="int32"/>
+ <reg name="cs" bitsize="16" type="int16"/>
+ <reg name="ss" bitsize="16" type="int16"/>
+ <reg name="ds" bitsize="16" type="int16"/>
+ <reg name="es" bitsize="16" type="int16"/>
+ <reg name="fs" bitsize="16" type="int16"/>
+ <reg name="gs" bitsize="16" type="int16"/>
<reg name="st0" bitsize="80" type="i387_ext"/>
<reg name="st1" bitsize="80" type="i387_ext"/>
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 @@
<reg name="rip" bitsize="64" type="code_ptr"/>
<reg name="eflags" bitsize="32" type="i386_eflags"/>
- <reg name="cs" bitsize="32" type="int32"/>
- <reg name="ss" bitsize="32" type="int32"/>
- <reg name="ds" bitsize="32" type="int32"/>
- <reg name="es" bitsize="32" type="int32"/>
- <reg name="fs" bitsize="32" type="int32"/>
- <reg name="gs" bitsize="32" type="int32"/>
+ <reg name="cs" bitsize="16" type="int16"/>
+ <reg name="ss" bitsize="16" type="int16"/>
+ <reg name="ds" bitsize="16" type="int16"/>
+ <reg name="es" bitsize="16" type="int16"/>
+ <reg name="fs" bitsize="16" type="int16"/>
+ <reg name="gs" bitsize="16" type="int16"/>
<reg name="st0" bitsize="80" type="i387_ext"/>
<reg name="st1" bitsize="80" type="i387_ext"/>
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 @@
<reg name="rip" bitsize="64" type="uint64"/>
<reg name="eflags" bitsize="32" type="i386_eflags"/>
- <reg name="cs" bitsize="32" type="int32"/>
- <reg name="ss" bitsize="32" type="int32"/>
- <reg name="ds" bitsize="32" type="int32"/>
- <reg name="es" bitsize="32" type="int32"/>
- <reg name="fs" bitsize="32" type="int32"/>
- <reg name="gs" bitsize="32" type="int32"/>
+ <reg name="cs" bitsize="16" type="int16"/>
+ <reg name="ss" bitsize="16" type="int16"/>
+ <reg name="ds" bitsize="16" type="int16"/>
+ <reg name="es" bitsize="16" type="int16"/>
+ <reg name="fs" bitsize="16" type="int16"/>
+ <reg name="gs" bitsize="16" type="int16"/>
<reg name="st0" bitsize="80" type="i387_ext"/>
<reg name="st1" bitsize="80" type="i387_ext"/>
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