Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jim Wilson <jim.wilson@linaro.org>
To: gdb-patches@sourceware.org
Cc: Nick Clifton <nickc@redhat.com>
Subject: Re: [PATCH] aarch64 sim load/store single struct implementation w/ ldnr bug fixes
Date: Sun, 05 Feb 2017 01:55:00 -0000	[thread overview]
Message-ID: <CABXYE2XRTvEAEJw8nB4AZ3ST3Z8wOHZbKKD0sc+nU5a=4xKOYw@mail.gmail.com> (raw)
In-Reply-To: <CABXYE2XhE+8cFmcZmrawD84cLz6eKTZ-5v4fiVjWDM2O856nnQ@mail.gmail.com>

Ping.  Forgot to cc Nick the first time.

See
    https://sourceware.org/ml/gdb-patches/2017-01/msg00638.html
for the attachment.

Jim

On Sat, Jan 28, 2017 at 4:01 PM, Jim Wilson <jim.wilson@linaro.org> wrote:
> This started as an attempt to implement one of the missing load single
> struct to one lane instructions, and by the time I figured out how get
> ti right, it turned out to be simpler to just add all of the missing
> ASIMD load and store instructions at the same time.  So this is a
> larger patch than my previous ones.
>
> The bulk of the changes involve handling instruction bit 24 correctly
> in do_vec_load_store, by loading it into a variable called single, and
> changing code to use it, calling new functions for the ldn single and
> stn single instructions.  This required re-indenting some code.  The
> existing ldnr support is for instructions with this bit set, so had to
> be moved inside the new single support.  Since I'm implementing all of
> the missing ASIMD load and store instructions here, I changed a number
> of HALT_NYI calls to HALT_UNALLOC.
>
> While doing this, I managed to find 4 bugs in the ldnr support.  In
> do_vec_LDnR, there are loops using i, but only the loops in case 0
> actually use i inside the loop.  Cases 1 through 3 are broken.  I
> fixed this by replacing the switch with a loop, which also allows me
> to remove a lot of duplicated code.  As a result, I'm removing almost
> as many lines as I'm adding.  In do_vec_load_store, there is a check
> that is using 0xE twice instead of 0xC and 0xE.  This is fixed by
> using the new single var instead.  In the post indexed addressing mode
> code, the 0xE case has 4 and 8 when it should be using 3 and 4 as
> these are register counts not data sizes.  Also here, the multiply by
> 2 when full is set is wrong for ldnr, but this is fixed by moving it
> into the new single code.
>
> I added testcases for the ldn single and stn single instruction
> support that is new, and for the ldnr instruction support that is
> being fixed by this patch.  The new testcases fail without the patch,
> and work with the patch.  The GCC C testsuite unexpected failures drop
> from 2096 to 1701 (-395).
>
> Jim


  reply	other threads:[~2017-02-05  1:55 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-29  0:01 Jim Wilson
2017-02-05  1:55 ` Jim Wilson [this message]
2017-02-13 15:36   ` Nick Clifton
2017-02-13 16:41     ` Jim Wilson

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='CABXYE2XRTvEAEJw8nB4AZ3ST3Z8wOHZbKKD0sc+nU5a=4xKOYw@mail.gmail.com' \
    --to=jim.wilson@linaro.org \
    --cc=gdb-patches@sourceware.org \
    --cc=nickc@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