All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Richard Henderson <richard.henderson@linaro.org>,
	QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v10.5 01/20] tcg: Allow multiple word entries into the constant pool
Date: Mon, 22 Jan 2018 19:15:00 +0000	[thread overview]
Message-ID: <87fu6xk8nf.fsf@linaro.org> (raw)
In-Reply-To: <CAFEAcA-TfkUUP8C1u_WiPhQj+seMBER-MkcHXBOai4Yt27pCsw@mail.gmail.com>


Peter Maydell <peter.maydell@linaro.org> writes:

> On 17 January 2018 at 16:14, Richard Henderson
> <richard.henderson@linaro.org> wrote:
>> This will be required for storing vector constants.
>>
>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>> ---
>>  tcg/tcg-pool.inc.c | 115 +++++++++++++++++++++++++++++++++++++++++++----------
>>  1 file changed, 93 insertions(+), 22 deletions(-)
>>
>> diff --git a/tcg/tcg-pool.inc.c b/tcg/tcg-pool.inc.c
>> index 8a85131405..0f76e7bee3 100644
>> --- a/tcg/tcg-pool.inc.c
>> +++ b/tcg/tcg-pool.inc.c
>> @@ -22,39 +22,110 @@
>>
>>  typedef struct TCGLabelPoolData {
>>      struct TCGLabelPoolData *next;
>> -    tcg_target_ulong data;
>>      tcg_insn_unit *label;
>> -    intptr_t addend;
>> -    int type;
>> +    int addend  : 32;
>> +    int rtype   : 16;
>> +    int nlong   : 16;
>> +    tcg_target_ulong data[];
>>  } TCGLabelPoolData;
>>
>
> Seems a bit odd to use bitfields for 32 and 16 bit values, but whatever.
> (My default reaction to bitfields is "be suspicious" :-))

I'm guessing this is the same reason as the softfloat re-factor. By
manually forcing stuff into a bitfield the compiler does a better job of
passing multiple structure elements in a single register?

It would be nice if the compiler could spot this itself though.

>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>
> thanks
> -- PMM


--
Alex Bennée

  reply	other threads:[~2018-01-22 19:15 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17 16:14 [Qemu-devel] [PATCH v10.5 00/20] tcg: generic vector operations Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 01/20] tcg: Allow multiple word entries into the constant pool Richard Henderson
2018-01-22 18:35   ` Peter Maydell
2018-01-22 19:15     ` Alex Bennée [this message]
2018-01-22 19:56       ` Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 02/20] tcg: Add types and basic operations for host vectors Richard Henderson
2018-01-22 18:53   ` Peter Maydell
2018-01-22 20:02     ` Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 03/20] tcg: Standardize integral arguments to expanders Richard Henderson
2018-01-22 19:17   ` Peter Maydell
2018-01-22 20:04     ` Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 04/20] tcg: Add generic vector expanders Richard Henderson
2018-01-26 12:17   ` Alex Bennée
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 05/20] tcg: Add generic vector ops for constant shifts Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 06/20] tcg: Add generic vector ops for comparisons Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 07/20] tcg: Add generic vector ops for multiplication Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 08/20] tcg: Add generic helpers for saturating arithmetic Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 09/20] tcg: Add generic vector helpers with a scalar operand Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 10/20] tcg/optimize: Handle vector opcodes during optimize Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 11/20] target/arm: Align vector registers Richard Henderson
2018-01-26  9:52   ` Alex Bennée
2018-01-26 16:43     ` Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 12/20] target/arm: Use vector infrastructure for aa64 add/sub/logic Richard Henderson
2018-01-25 16:44   ` Peter Maydell
2018-01-25 17:06     ` Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 13/20] target/arm: Use vector infrastructure for aa64 mov/not/neg Richard Henderson
2018-01-25 16:46   ` Peter Maydell
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 14/20] target/arm: Use vector infrastructure for aa64 dup/movi Richard Henderson
2018-01-25 16:50   ` Peter Maydell
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 15/20] target/arm: Use vector infrastructure for aa64 constant shifts Richard Henderson
2018-01-25 17:03   ` Peter Maydell
2018-01-25 17:14     ` Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 16/20] target/arm: Use vector infrastructure for aa64 compares Richard Henderson
2018-01-25 17:16   ` Peter Maydell
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 17/20] target/arm: Use vector infrastructure for aa64 multiplies Richard Henderson
2018-01-25 17:23   ` Peter Maydell
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 18/20] target/arm: Use vector infrastructure for aa64 orr/bic immediate Richard Henderson
2018-01-25 17:24   ` Peter Maydell
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 19/20] tcg/i386: Add vector operations Richard Henderson
2018-01-17 16:14 ` [Qemu-devel] [PATCH v10.5 20/20] tcg/aarch64: " Richard Henderson
2018-01-17 17:14 ` [Qemu-devel] [PATCH v10.5 00/20] tcg: generic " no-reply
2018-01-25 17:28 ` Peter Maydell

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=87fu6xk8nf.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=peter.maydell@linaro.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.