From: Yao Qi <qiyaoltc@gmail.com>
To: Pedro Alves <palves@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 07/25] Lazily and dynamically create i386-linux target descriptions
Date: Tue, 20 Jun 2017 14:07:00 -0000 [thread overview]
Message-ID: <86k2464us8.fsf@gmail.com> (raw)
In-Reply-To: <f84b34be-f4d5-6c87-86b2-048f2b6e08d7@redhat.com> (Pedro Alves's message of "Tue, 20 Jun 2017 12:01:23 +0100")
Pedro Alves <palves@redhat.com> writes:
> I don't see the unit test in the patch.
>
It is moved to patch 08/25.
> Can you say something about the "regnum = %ld" change? Is it
> related to the rest of the patch?
>
Without this change, the lazily generated tdesc doesn't equal to the
original pre-generated tdesc if the register has regnum attribute, like
<reg name="xmm0" bitsize="128" type="vec128" regnum="32"/>
most of the reg doesn't have "regnum" attribute so the number is
allocated sequentially. If the reg has "regnum", it explicitly set the
register number. I'll rewrite the commit log this way,
Instead of using pre-generated target descriptions, this patch
changes GDB to lazily and dynamically create target descriptions
according to the target hardware capability (xcr0 in i386).
This support any combination of target features.
Some reg in XML target description has attribute "regnum" which set the
register number explicitly rather than using the sequentially allocated
number,
<reg name="xmm0" bitsize="128" type="vec128" regnum="32"/>
In order to handle this, this patch also changes the visitor to print
the code to set regnum when reg has attribute "regnum".
2017-06-20 Yao Qi <yao.qi@linaro.org>
* i386-linux-tdep.c: Don't include features/i386/i386-XXX-linux.c.
include features/i386/32bit-XXX.c instead.
(i386_linux_read_description): Generate
target description if it doesn't exist.
* target-descriptions.c (print_c_tdesc::visit): Print code to
set regnum.
(print_c_tdesc) <m_next_regnum>: New field.
* features/i386/32bit-linux.c: Regenerated.
* features/i386/32bit-sse.c: Regenerated.
>>
>> 2017-04-27 Yao Qi <yao.qi@linaro.org>
>>
>> * i386-linux-tdep.c (i386_linux_read_description): Generate
>> target description if it doesn't exist.
>> [GDB_SELF_TEST] (i386_linux_read_description_test): New unit test.
>> (_initialize_i386_linux_tdep) [GDB_SELF_TEST]: Register unit test.
>
> Leading TAB vs spaces.
>
These two lines should be removed.
>> +private:
>> + /* The register number to use for the next register we see. */
>> + int next_regnum = 0;
>> };
>
> "m_" prefix.
I'll fix it.
--
Yao (齐尧)
next prev parent reply other threads:[~2017-06-20 14:07 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-12 8:42 [PATCH 00/25 V2] Make GDB builtin target descriptions more flexible Yao Qi
2017-06-12 8:42 ` [PATCH 05/25] Use visitor pattern for "maint print c-tdesc" Yao Qi
2017-06-20 23:37 ` Simon Marchi
2017-06-12 8:42 ` [PATCH 08/25] Add "maint check xml-descriptions" to test builtin xml target descriptions Yao Qi
2017-06-28 16:13 ` Pedro Alves
2017-06-12 8:42 ` [PATCH 25/25] Remove features/i386/amd64-*linux.c and features/i386/x32-*linux.c Yao Qi
2017-06-12 8:42 ` [PATCH 24/25] [GDBserver] Use pre-generated amd64-linux tdesc as test Yao Qi
2017-06-12 8:42 ` [PATCH 12/25] [GDBserver] Centralize tdesc for i386-linux Yao Qi
2017-06-12 8:42 ` [PATCH 04/25] Centralize i386 linux target descriptions Yao Qi
2017-06-19 21:27 ` Simon Marchi
2017-06-12 8:42 ` [PATCH 09/25] Use target_desc fields expedite_regs and xmltarget ifndef IN_PROCESS_AGENT Yao Qi
2017-06-28 16:16 ` Pedro Alves
2017-06-28 17:42 ` Pedro Alves
2017-06-28 17:45 ` Pedro Alves
2017-06-29 11:45 ` Yao Qi
2017-06-12 8:42 ` [PATCH 01/25] Move initialize_tdesc_mips* calls from mips-linux-nat.c to mips-linux-tdep.c Yao Qi
2017-06-12 15:25 ` Maciej W. Rozycki
2017-06-13 8:07 ` Yao Qi
2017-06-12 8:42 ` [PATCH 21/25] Lazily and dynamically create amd64-linux target descriptions Yao Qi
2017-06-12 8:42 ` [PATCH 02/25] Adjust the order of 32bit-linux.xml and 32bit-sse.xml in i386/i386-linux.xml Yao Qi
2017-06-19 20:22 ` Simon Marchi
2017-06-19 21:24 ` Pedro Alves
2017-06-19 21:48 ` Simon Marchi
2017-06-19 21:56 ` Pedro Alves
2017-06-20 9:20 ` Yao Qi
2017-06-20 10:12 ` Pedro Alves
2017-06-20 11:09 ` Yao Qi
2017-06-12 8:42 ` [PATCH 22/25] Regenerate two regformats/i386/.dat files Yao Qi
2017-06-22 12:43 ` Yao Qi
2017-06-12 8:42 ` [PATCH 20/25] Centralize amd64-linux target descriptions Yao Qi
2017-06-12 8:42 ` [PATCH 07/25] Lazily and dynamically create i386-linux " Yao Qi
2017-06-20 11:01 ` Pedro Alves
2017-06-20 14:07 ` Yao Qi [this message]
2017-06-28 15:30 ` Pedro Alves
2017-06-12 8:42 ` [PATCH 15/25] [RFC] GDBserver unit test to i386_tdesc Yao Qi
2017-06-28 17:22 ` Pedro Alves
2017-06-29 9:27 ` Yao Qi
2017-06-12 8:42 ` [PATCH 14/25] [RFC] GDBserver self test Yao Qi
2017-06-28 17:09 ` Pedro Alves
2017-06-29 9:08 ` Yao Qi
2017-06-12 8:42 ` [PATCH 16/25] Dynamically composite xml in reply to GDB Yao Qi
2017-06-12 8:42 ` [PATCH 06/25] Generate c for feature instead of tdesc Yao Qi
2017-06-12 14:48 ` Eli Zaretskii
2017-06-13 12:07 ` Yao Qi
2017-06-13 14:49 ` Eli Zaretskii
2017-06-13 15:31 ` Yao Qi
2017-06-13 15:41 ` Eli Zaretskii
2017-06-14 16:21 ` Yao Qi
2017-06-14 16:32 ` Eli Zaretskii
2017-06-15 13:19 ` Yao Qi
2017-06-15 14:45 ` Eli Zaretskii
[not found] ` <d0c0b3b2-e585-acbb-d63e-6be6a6fe11a9@redhat.com>
[not found] ` <86mv90hyci.fsf@gmail.com>
2017-06-22 15:36 ` Pedro Alves
2017-06-22 15:58 ` Yao Qi
2017-06-26 21:38 ` Simon Marchi
2017-06-29 15:24 ` Yao Qi
2017-06-12 8:42 ` [PATCH 11/25] Use VEC for target_desc.reg_defs Yao Qi
2017-06-28 19:01 ` Pedro Alves
2017-06-29 11:05 ` Yao Qi
2017-06-29 11:31 ` Pedro Alves
2017-06-29 13:24 ` Yao Qi
2017-06-12 8:42 ` [PATCH 10/25] Adjust code generated by regformats/regdat.sh Yao Qi
[not found] ` <92ca03ca-e06d-09fc-7243-e52dd29edcef@redhat.com>
2017-06-21 14:28 ` Yao Qi
2017-06-12 8:42 ` [PATCH 19/25] GDBserver: remove srv_i386_linux_xmlfiles Yao Qi
2017-06-12 8:42 ` [PATCH 13/25] Dynamically create tdesc in GDBserver Yao Qi
2017-06-12 8:42 ` [PATCH 03/25] Class-fy tdesc_reg tdesc_type and tdesc_feature Yao Qi
2017-06-19 20:55 ` Simon Marchi
2017-06-19 21:30 ` Simon Marchi
2017-06-20 10:31 ` Yao Qi
2017-06-12 8:42 ` [PATCH 17/25] Remove features/i386/i386-*linux.c Yao Qi
2017-06-12 8:42 ` [PATCH 23/25] [GDBserver] Convert amd64-linux target descriptions Yao Qi
2017-06-28 19:00 ` Pedro Alves
2017-06-12 8:42 ` [PATCH 18/25] [GDBserver] Use pre-generated tdesc as test Yao Qi
2017-06-19 19:59 ` [PATCH 00/25 V2] Make GDB builtin target descriptions more flexible Simon Marchi
2017-06-20 11:02 ` Yao Qi
2017-06-26 14:45 ` Tedeschi, Walfred
2017-06-27 13:49 ` Alan Hayward
2017-06-28 8:28 ` Yao Qi
2017-06-28 8:06 ` Yao Qi
2017-06-28 19:06 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86k2464us8.fsf@gmail.com \
--to=qiyaoltc@gmail.com \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox