From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org
Subject: Re: [PATCH 2/8] target/arm: Use generic vector infrastructure for aa64 add/sub/logic
Date: Mon, 11 Sep 2017 10:12:34 +0100 [thread overview]
Message-ID: <8760cpbnul.fsf@linaro.org> (raw)
In-Reply-To: <05363152-8a66-af3f-7c66-9627cbdc290b@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> On 09/07/2017 09:58 AM, Alex Bennée wrote:
>>> + switch (size + 4 * is_u) {
>>
>> Hmm I find this switch a little too magical. I mean I can see that the
>> encoding abuses size for the final opcode when I look at the manual but
>> it reads badly.
>>
>>> + case 0: /* AND */
>>> + gvec_op = tcg_gen_gvec_and8;
>>> + goto do_gvec;
>>> + case 1: /* BIC */
>>> + gvec_op = tcg_gen_gvec_andc8;
>>> + goto do_gvec;
>>> + case 2: /* ORR */
>>> + gvec_op = tcg_gen_gvec_or8;
>>> + goto do_gvec;
>>> + case 3: /* ORN */
>>> + gvec_op = tcg_gen_gvec_orc8;
>>> + goto do_gvec;
>>> + case 4: /* EOR */
>>> + gvec_op = tcg_gen_gvec_xor8;
>>> + goto do_gvec;
>>> + do_gvec:
>>> + gvec_op(vec_full_reg_offset(s, rd),
>>> + vec_full_reg_offset(s, rn),
>>> + vec_full_reg_offset(s, rm),
>>> + is_q ? 16 : 8, vec_full_reg_size(s));
>>> + return;
>>
>> No default case (although I guess we just fall through). What's wrong
>> with just having a !is_u test with gvec_op = tbl[size] and skipping all
>> the goto stuff?
>
> Because that would still leave EOR out in the woods.
> I do think this is the cleanest way to filter out these 5 operations.
Is this going to look better if the other operations in this branch of
the decode are converted as well?
--
Alex Bennée
WARNING: multiple messages have this Message-ID (diff)
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-devel@nongnu.org, qemu-arm@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/8] target/arm: Use generic vector infrastructure for aa64 add/sub/logic
Date: Mon, 11 Sep 2017 10:12:34 +0100 [thread overview]
Message-ID: <8760cpbnul.fsf@linaro.org> (raw)
In-Reply-To: <05363152-8a66-af3f-7c66-9627cbdc290b@linaro.org>
Richard Henderson <richard.henderson@linaro.org> writes:
> On 09/07/2017 09:58 AM, Alex Bennée wrote:
>>> + switch (size + 4 * is_u) {
>>
>> Hmm I find this switch a little too magical. I mean I can see that the
>> encoding abuses size for the final opcode when I look at the manual but
>> it reads badly.
>>
>>> + case 0: /* AND */
>>> + gvec_op = tcg_gen_gvec_and8;
>>> + goto do_gvec;
>>> + case 1: /* BIC */
>>> + gvec_op = tcg_gen_gvec_andc8;
>>> + goto do_gvec;
>>> + case 2: /* ORR */
>>> + gvec_op = tcg_gen_gvec_or8;
>>> + goto do_gvec;
>>> + case 3: /* ORN */
>>> + gvec_op = tcg_gen_gvec_orc8;
>>> + goto do_gvec;
>>> + case 4: /* EOR */
>>> + gvec_op = tcg_gen_gvec_xor8;
>>> + goto do_gvec;
>>> + do_gvec:
>>> + gvec_op(vec_full_reg_offset(s, rd),
>>> + vec_full_reg_offset(s, rn),
>>> + vec_full_reg_offset(s, rm),
>>> + is_q ? 16 : 8, vec_full_reg_size(s));
>>> + return;
>>
>> No default case (although I guess we just fall through). What's wrong
>> with just having a !is_u test with gvec_op = tbl[size] and skipping all
>> the goto stuff?
>
> Because that would still leave EOR out in the woods.
> I do think this is the cleanest way to filter out these 5 operations.
Is this going to look better if the other operations in this branch of
the decode are converted as well?
--
Alex Bennée
next prev parent reply other threads:[~2017-09-11 9:12 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-17 23:01 [PATCH 0/8] TCG vectorization and example conversion Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-17 23:01 ` [PATCH 1/8] tcg: Add generic vector infrastructure and ops for add/sub/logic Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-30 1:31 ` Philippe Mathieu-Daudé
2017-09-01 20:38 ` Richard Henderson
2017-09-07 16:34 ` Alex Bennée
2017-09-07 16:34 ` [Qemu-devel] " Alex Bennée
2017-08-17 23:01 ` [PATCH 2/8] target/arm: Use generic vector infrastructure for aa64 add/sub/logic Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-09-07 16:58 ` Alex Bennée
2017-09-07 16:58 ` [Qemu-devel] " Alex Bennée
2017-09-10 1:43 ` Richard Henderson
2017-09-10 1:43 ` [Qemu-devel] " Richard Henderson
2017-09-11 9:12 ` Alex Bennée [this message]
2017-09-11 9:12 ` Alex Bennée
2017-09-11 18:09 ` Richard Henderson
2017-09-11 18:09 ` [Qemu-devel] " Richard Henderson
2017-08-17 23:01 ` [PATCH 3/8] tcg: Add types for host vectors Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-17 23:46 ` Philippe Mathieu-Daudé
2017-09-07 18:18 ` Alex Bennée
2017-09-07 18:18 ` [Qemu-devel] " Alex Bennée
2017-08-17 23:01 ` [PATCH 4/8] tcg: Add operations " Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-30 1:34 ` Philippe Mathieu-Daudé
2017-09-07 19:00 ` Alex Bennée
2017-09-07 19:00 ` [Qemu-devel] " Alex Bennée
2017-09-07 19:02 ` Richard Henderson
2017-09-07 19:02 ` [Qemu-devel] " Richard Henderson
2017-09-08 9:28 ` Alex Bennée
2017-09-08 9:28 ` [Qemu-devel] " Alex Bennée
2017-08-17 23:01 ` [PATCH 5/8] tcg: Add tcg_op_supported Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-17 23:44 ` Philippe Mathieu-Daudé
2017-09-07 19:02 ` Alex Bennée
2017-09-07 19:02 ` [Qemu-devel] " Alex Bennée
2017-08-17 23:01 ` [PATCH 6/8] tcg: Add INDEX_op_invalid Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-17 23:45 ` Philippe Mathieu-Daudé
2017-09-08 9:30 ` Alex Bennée
2017-09-08 9:30 ` [Qemu-devel] " Alex Bennée
2017-08-17 23:01 ` [PATCH 7/8] tcg: Expand target vector ops with host vector ops Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-09-08 9:34 ` Alex Bennée
2017-09-08 9:34 ` [Qemu-devel] " Alex Bennée
2017-08-17 23:01 ` [PATCH 8/8] tcg/i386: Add vector operations Richard Henderson
2017-08-17 23:01 ` [Qemu-devel] " Richard Henderson
2017-08-22 13:15 ` Alex Bennée
2017-08-22 13:15 ` [Qemu-devel] " Alex Bennée
2017-08-23 19:02 ` Richard Henderson
2017-08-23 19:02 ` [Qemu-devel] " Richard Henderson
2017-09-08 10:13 ` Alex Bennée
2017-09-08 10:13 ` [Qemu-devel] " Alex Bennée
2017-09-08 13:10 ` Alex Bennée
2017-09-08 13:10 ` [Qemu-devel] " Alex Bennée
2017-09-10 2:44 ` Richard Henderson
2017-09-10 2:44 ` [Qemu-devel] " Richard Henderson
2017-09-11 9:07 ` Alex Bennée
2017-09-11 9:07 ` [Qemu-devel] " Alex Bennée
2017-09-12 13:52 ` Richard Henderson
2017-09-12 13:52 ` [Qemu-devel] " Richard Henderson
2017-09-08 13:49 ` [PATCH 0/8] TCG vectorization and example conversion Alex Bennée
2017-09-08 13:49 ` [Qemu-devel] " Alex Bennée
2017-09-08 16:05 ` Richard Henderson
2017-09-08 16:05 ` [Qemu-devel] " Richard Henderson
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=8760cpbnul.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.