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
next prev parent 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