All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] cpu: Move tcg_exit_req to the end of CPUState
Date: Wed, 19 Mar 2014 15:13:22 -0700	[thread overview]
Message-ID: <532A1682.1070703@twiddle.net> (raw)
In-Reply-To: <532A087A.8060801@suse.de>

On 03/19/2014 02:13 PM, Andreas Färber wrote:
> Am 19.03.2014 22:04, schrieb Richard Henderson:
>> Ping?  This is a significant TCG code size regression
>> for ARM, AArch64, and Sparc hosts.  It helps x86 too,
>> though that's not as severe.
> 
> Sorry, applied to qom-cpu now:
> https://github.com/afaerber/qemu-cpu/commits/qom-cpu
> 
> How did you find this? Was there some assertion on one target, or do you
> have some analysis code that you could share?

No assertions; all of the targets worked.

I was just reading asm_out dumps as I improved the Sparc backend.
We went from beginning with

0x40000000:  ld  [ %i0 + -76 ], %l0

to

0x40000000:  sethi  %hi(0xffffbc00), %g1
0x40000004:  or  %g1, 0x2ec, %g1        ! 0xffffbeec
0x40000008:  ld  [ %i0 + %g1 ], %l0

That constant is of course -16660, out of range of the 13-bit signed addend.

Then I got to thinking: ARM also has a 13-bit range (though in a silly 1's
compliment form), AArch64 has an 8-bit signed addend, and i386 can use a
smaller encoding for an 8-bit signed addend.  So it could benefit just about
all of the backends to keep this offset relatively small.


r~

      reply	other threads:[~2014-03-19 22:13 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-14 22:30 [Qemu-devel] [PATCH] cpu: Move tcg_exit_req to the end of CPUState Richard Henderson
2014-03-19 21:04 ` Richard Henderson
2014-03-19 21:13   ` Andreas Färber
2014-03-19 22:13     ` Richard Henderson [this message]

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=532A1682.1070703@twiddle.net \
    --to=rth@twiddle.net \
    --cc=afaerber@suse.de \
    --cc=qemu-devel@nongnu.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.