Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@polymtl.ca>
To: Andreas Arnez <arnez@linux.vnet.ibm.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] Fix register selection in var-access.exp
Date: Tue, 13 Jun 2017 20:33:00 -0000	[thread overview]
Message-ID: <0dc97ea8ffe3b55b2a114ba1102f23c0@polymtl.ca> (raw)
In-Reply-To: <m3a85b3fej.fsf@oc1027705133.ibm.com>

On 2017-06-13 20:34, Andreas Arnez wrote:
> The new test var-access.exp causes FAILs on i686.  This is because the
> test chooses the wrong name for DWARF register number 1: It uses
> "edx" (which corresponds to DWARF register number 2), but should have 
> used
> "ecx" instead.
> 
> Also, the current logic in var-access.exp does not correctly 
> distinguish
> between a 64-bit and a 32-bit program on an x86-64 target.  It uses the
> 64-bit register names for both.
> 
> These problems are fixed.  In order to address the latter, the 
> convenience
> macros is_*_target are exploited where appropriate.
> 
> gdb/testsuite/ChangeLog:
> 
> 	* gdb.dwarf2/var-access.exp: Use register name ecx instead of edx
> 	on 32-bit x86 targets.  Exploit is_*_target macros where
> 	appropriate.
> ---
>  gdb/testsuite/gdb.dwarf2/var-access.exp | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/gdb/testsuite/gdb.dwarf2/var-access.exp
> b/gdb/testsuite/gdb.dwarf2/var-access.exp
> index 157a96c..96c54e7 100644
> --- a/gdb/testsuite/gdb.dwarf2/var-access.exp
> +++ b/gdb/testsuite/gdb.dwarf2/var-access.exp
> @@ -28,16 +28,16 @@ if {![dwarf2_support]} {
> 
>  set dwarf_regnum {0 1}
> 
> -if { [istarget "aarch64*-*-*"] } {
> +if { [is_aarch64_target] } {
>      set regname {x0 x1}
> -} elseif { [istarget "arm*-*-*"]
> +} elseif { [is_aarch32_target]
>  	   || [istarget "s390*-*-*" ]
>  	   || [istarget "powerpc*-*-*"]
>  	   || [istarget "rs6000*-*-aix*"] } {
>      set regname {r0 r1}
> -} elseif { [istarget "i?86-*-*"] } {
> -    set regname {eax edx}
> -} elseif { [istarget "x86_64-*-*"] } {
> +} elseif { [is_x86_like_target] } {
> +    set regname {eax ecx}
> +} elseif { [is_amd64_regs_target] } {
>      set regname {rax rdx}
>  } else {
>      verbose "Skipping tests for accessing DWARF-described variables."

The patch LGTM.

However could you (or somebody else) explain this to me?  The doc of 
is_amd64_regs_target says:

2465 # Return 1 if target has x86_64 registers - either amd64 or x32.
2466 # x32 target identifies as x86_64-*-linux*, therefore it cannot be 
determined
2467 # just from the target string.

If x32 identifies as x86_64-something and that procedure should return 
true when testing with x32 and x86_64/amd64, why can't we test the 
target string for x86_64-*?


  reply	other threads:[~2017-06-13 20:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-13 18:34 Andreas Arnez
2017-06-13 20:33 ` Simon Marchi [this message]
2017-06-13 21:24   ` Pedro Alves
2017-06-14 12:28     ` Andreas Arnez

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=0dc97ea8ffe3b55b2a114ba1102f23c0@polymtl.ca \
    --to=simon.marchi@polymtl.ca \
    --cc=arnez@linux.vnet.ibm.com \
    --cc=gdb-patches@sourceware.org \
    /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