This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 4/5]: Enhancements to "flags": i386 cleanup
- From: Pedro Alves <palves at redhat dot com>
- To: Doug Evans <dje at google dot com>, gdb-patches at sourceware dot org
- Cc: cole945 at gmail dot com
- Date: Wed, 20 Jul 2016 19:17:38 +0100
- Subject: Re: [PATCH 4/5]: Enhancements to "flags": i386 cleanup
- Authentication-results: sourceware.org; auth=none
- References: <047d7b5dbb865204bd052cf0bc2b@google.com>
Hi Doug,
On 02/29/2016 11:09 PM, Doug Evans wrote:
> Hi.
>
> This patch just simplifies things by removing the "end" spec in
> i386 eflags definitions, and is otherwise a nop.
>
> I removed them because they're redundant.
>
I noticed that this makes older gdbs reject the new target descriptions.
E.g., gdb 7.11.1 against master gdbserver:
Remote debugging using :9999
warning: while parsing target description (at line 24): Field "CF" has neither type nor bit position
warning: Could not load XML target description; ignoring
Reverting the patch makes old gdb grok the tdesc again (git revert 49b7ae7bb8f2).
Since it was meant as a cleanup, I think we should revert
it on grounds of avoiding a back compatibility break. WDYT?
Thanks,
Pedro Alves
> 2016-02-29 Doug Evans <dje@google.com>
>
> * features/i386/32bit-core.xml (i386_eflags): Remove "end" spec.
> * features/i386/32bit-sse.xml (i386_eflags): Ditto.
> * features/i386/64bit-core.xml (i386_eflags): Ditto.
> * features/i386/64bit-sse.xml (i386_eflags): Ditto.
> * features/i386/x32-core.xml (i386_eflags): Ditto.
>
> diff --git a/gdb/features/i386/32bit-core.xml
> b/gdb/features/i386/32bit-core.xml
> index a27863f..b00d913 100644
> --- a/gdb/features/i386/32bit-core.xml
> +++ b/gdb/features/i386/32bit-core.xml
> @@ -8,23 +8,23 @@
> <!DOCTYPE feature SYSTEM "gdb-target.dtd">
> <feature name="org.gnu.gdb.i386.core">
> <flags id="i386_eflags" size="4">
> - <field name="CF" start="0" end="0"/>
> - <field name="" start="1" end="1"/>
> - <field name="PF" start="2" end="2"/>
> - <field name="AF" start="4" end="4"/>
> - <field name="ZF" start="6" end="6"/>
> - <field name="SF" start="7" end="7"/>
> - <field name="TF" start="8" end="8"/>
> - <field name="IF" start="9" end="9"/>
> - <field name="DF" start="10" end="10"/>
> - <field name="OF" start="11" end="11"/>
> - <field name="NT" start="14" end="14"/>
> - <field name="RF" start="16" end="16"/>
> - <field name="VM" start="17" end="17"/>
> - <field name="AC" start="18" end="18"/>
> - <field name="VIF" start="19" end="19"/>
> - <field name="VIP" start="20" end="20"/>
> - <field name="ID" start="21" end="21"/>
> + <field name="CF" start="0"/>
> + <field name="" start="1"/>
> + <field name="PF" start="2"/>
> + <field name="AF" start="4"/>
> + <field name="ZF" start="6"/>
> + <field name="SF" start="7"/>
> + <field name="TF" start="8"/>
> + <field name="IF" start="9"/>
> + <field name="DF" start="10"/>
> + <field name="OF" start="11"/>
> + <field name="NT" start="14"/>
> + <field name="RF" start="16"/>
> + <field name="VM" start="17"/>
> + <field name="AC" start="18"/>
> + <field name="VIF" start="19"/>
> + <field name="VIP" start="20"/>
> + <field name="ID" start="21"/>
> </flags>
>
> <reg name="eax" bitsize="32" type="int32"/>
> diff --git a/gdb/features/i386/32bit-sse.xml
> b/gdb/features/i386/32bit-sse.xml
> index 5a44d1e..4448a7e 100644
> --- a/gdb/features/i386/32bit-sse.xml
> +++ b/gdb/features/i386/32bit-sse.xml
> @@ -23,20 +23,20 @@
> <field name="uint128" type="uint128"/>
> </union>
> <flags id="i386_mxcsr" size="4">
> - <field name="IE" start="0" end="0"/>
> - <field name="DE" start="1" end="1"/>
> - <field name="ZE" start="2" end="2"/>
> - <field name="OE" start="3" end="3"/>
> - <field name="UE" start="4" end="4"/>
> - <field name="PE" start="5" end="5"/>
> - <field name="DAZ" start="6" end="6"/>
> - <field name="IM" start="7" end="7"/>
> - <field name="DM" start="8" end="8"/>
> - <field name="ZM" start="9" end="9"/>
> - <field name="OM" start="10" end="10"/>
> - <field name="UM" start="11" end="11"/>
> - <field name="PM" start="12" end="12"/>
> - <field name="FZ" start="15" end="15"/>
> + <field name="IE" start="0"/>
> + <field name="DE" start="1"/>
> + <field name="ZE" start="2"/>
> + <field name="OE" start="3"/>
> + <field name="UE" start="4"/>
> + <field name="PE" start="5"/>
> + <field name="DAZ" start="6"/>
> + <field name="IM" start="7"/>
> + <field name="DM" start="8"/>
> + <field name="ZM" start="9"/>
> + <field name="OM" start="10"/>
> + <field name="UM" start="11"/>
> + <field name="PM" start="12"/>
> + <field name="FZ" start="15"/>
> </flags>
>
> <reg name="xmm0" bitsize="128" type="vec128" regnum="32"/>
> diff --git a/gdb/features/i386/64bit-core.xml
> b/gdb/features/i386/64bit-core.xml
> index 92f4e87..6e847c1 100644
> --- a/gdb/features/i386/64bit-core.xml
> +++ b/gdb/features/i386/64bit-core.xml
> @@ -8,23 +8,23 @@
> <!DOCTYPE feature SYSTEM "gdb-target.dtd">
> <feature name="org.gnu.gdb.i386.core">
> <flags id="i386_eflags" size="4">
> - <field name="CF" start="0" end="0"/>
> - <field name="" start="1" end="1"/>
> - <field name="PF" start="2" end="2"/>
> - <field name="AF" start="4" end="4"/>
> - <field name="ZF" start="6" end="6"/>
> - <field name="SF" start="7" end="7"/>
> - <field name="TF" start="8" end="8"/>
> - <field name="IF" start="9" end="9"/>
> - <field name="DF" start="10" end="10"/>
> - <field name="OF" start="11" end="11"/>
> - <field name="NT" start="14" end="14"/>
> - <field name="RF" start="16" end="16"/>
> - <field name="VM" start="17" end="17"/>
> - <field name="AC" start="18" end="18"/>
> - <field name="VIF" start="19" end="19"/>
> - <field name="VIP" start="20" end="20"/>
> - <field name="ID" start="21" end="21"/>
> + <field name="CF" start="0"/>
> + <field name="" start="1"/>
> + <field name="PF" start="2"/>
> + <field name="AF" start="4"/>
> + <field name="ZF" start="6"/>
> + <field name="SF" start="7"/>
> + <field name="TF" start="8"/>
> + <field name="IF" start="9"/>
> + <field name="DF" start="10"/>
> + <field name="OF" start="11"/>
> + <field name="NT" start="14"/>
> + <field name="RF" start="16"/>
> + <field name="VM" start="17"/>
> + <field name="AC" start="18"/>
> + <field name="VIF" start="19"/>
> + <field name="VIP" start="20"/>
> + <field name="ID" start="21"/>
> </flags>
>
> <reg name="rax" bitsize="64" type="int64"/>
> diff --git a/gdb/features/i386/64bit-sse.xml
> b/gdb/features/i386/64bit-sse.xml
> index 2a5271e..dd6a850 100644
> --- a/gdb/features/i386/64bit-sse.xml
> +++ b/gdb/features/i386/64bit-sse.xml
> @@ -23,20 +23,20 @@
> <field name="uint128" type="uint128"/>
> </union>
> <flags id="i386_mxcsr" size="4">
> - <field name="IE" start="0" end="0"/>
> - <field name="DE" start="1" end="1"/>
> - <field name="ZE" start="2" end="2"/>
> - <field name="OE" start="3" end="3"/>
> - <field name="UE" start="4" end="4"/>
> - <field name="PE" start="5" end="5"/>
> - <field name="DAZ" start="6" end="6"/>
> - <field name="IM" start="7" end="7"/>
> - <field name="DM" start="8" end="8"/>
> - <field name="ZM" start="9" end="9"/>
> - <field name="OM" start="10" end="10"/>
> - <field name="UM" start="11" end="11"/>
> - <field name="PM" start="12" end="12"/>
> - <field name="FZ" start="15" end="15"/>
> + <field name="IE" start="0"/>
> + <field name="DE" start="1"/>
> + <field name="ZE" start="2"/>
> + <field name="OE" start="3"/>
> + <field name="UE" start="4"/>
> + <field name="PE" start="5"/>
> + <field name="DAZ" start="6"/>
> + <field name="IM" start="7"/>
> + <field name="DM" start="8"/>
> + <field name="ZM" start="9"/>
> + <field name="OM" start="10"/>
> + <field name="UM" start="11"/>
> + <field name="PM" start="12"/>
> + <field name="FZ" start="15"/>
> </flags>
>
> <reg name="xmm0" bitsize="128" type="vec128" regnum="40"/>
> diff --git a/gdb/features/i386/x32-core.xml
> b/gdb/features/i386/x32-core.xml
> index ab51ffc..c03cdea 100644
> --- a/gdb/features/i386/x32-core.xml
> +++ b/gdb/features/i386/x32-core.xml
> @@ -8,23 +8,23 @@
> <!DOCTYPE feature SYSTEM "gdb-target.dtd">
> <feature name="org.gnu.gdb.i386.core">
> <flags id="i386_eflags" size="4">
> - <field name="CF" start="0" end="0"/>
> - <field name="" start="1" end="1"/>
> - <field name="PF" start="2" end="2"/>
> - <field name="AF" start="4" end="4"/>
> - <field name="ZF" start="6" end="6"/>
> - <field name="SF" start="7" end="7"/>
> - <field name="TF" start="8" end="8"/>
> - <field name="IF" start="9" end="9"/>
> - <field name="DF" start="10" end="10"/>
> - <field name="OF" start="11" end="11"/>
> - <field name="NT" start="14" end="14"/>
> - <field name="RF" start="16" end="16"/>
> - <field name="VM" start="17" end="17"/>
> - <field name="AC" start="18" end="18"/>
> - <field name="VIF" start="19" end="19"/>
> - <field name="VIP" start="20" end="20"/>
> - <field name="ID" start="21" end="21"/>
> + <field name="CF" start="0"/>
> + <field name="" start="1"/>
> + <field name="PF" start="2"/>
> + <field name="AF" start="4"/>
> + <field name="ZF" start="6"/>
> + <field name="SF" start="7"/>
> + <field name="TF" start="8"/>
> + <field name="IF" start="9"/>
> + <field name="DF" start="10"/>
> + <field name="OF" start="11"/>
> + <field name="NT" start="14"/>
> + <field name="RF" start="16"/>
> + <field name="VM" start="17"/>
> + <field name="AC" start="18"/>
> + <field name="VIF" start="19"/>
> + <field name="VIP" start="20"/>
> + <field name="ID" start="21"/>
> </flags>
>
> <reg name="rax" bitsize="64" type="int64"/>