From: malc <av1474@comtv.ru>
To: Avi Kivity <avi@redhat.com>
Cc: Blue Swirl <blauwirbel@gmail.com>,
Jes Sorensen <Jes.Sorensen@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules
Date: Thu, 19 Aug 2010 16:52:19 +0400 (MSD) [thread overview]
Message-ID: <alpine.LNX.2.00.1008191645010.4502@linmac> (raw)
In-Reply-To: <4C6D2294.60304@redhat.com>
On Thu, 19 Aug 2010, Avi Kivity wrote:
> On 08/19/2010 11:17 AM, Jes Sorensen wrote:
> > On 08/19/10 10:10, Avi Kivity wrote:
> > > On 08/19/2010 10:58 AM, Jes Sorensen wrote:
> > > > > In C99, bool is a real type.
> > > > Kinda real, I would qualify it more as a pseudo type. It doesn't map to
> > > > any register size or even instruction actions.
> > > Neither do int, short, long, long long, or signed short long float.
> > Well most processors support 32 bit register ops, even when running in
> > 64 bit mode.
>
> 8-bit processors have 8-bit register size and 16-bit ints. Some processors
> have 36-bit ints. If you only code for processors which have Linux ports, and
> for those ports, then everything will be the same. Surprise!
>
> > long is the maximum register size in pretty much any sane
> > setup,
>
> Not on those 8-bit machines.
>
> > which is why it is such a mess that M$ took the easy way out when
> > they picked for win64. Tons of user code will have portability problems
> > because of this.
>
> They did that to avoid portability problems, presumably.
http://blogs.msdn.com/b/oldnewthing/archive/2005/01/31/363790.aspx
>
> > > > Most processors, at least
> > > > the ones I have programmed, tend to treat it as zero == false,
> > > > everything else == true.
> > > Processors don't have _Bool.
> > No but something has to generate code to handle it.
>
> gcc
>
> > > > For structure packing it's ugly.
> > > Use uint*_t for externally visible structures. use _Bool for internal
> > > booleans.
> > Structure packing is more than passing structures to external processes
> > or saving them, it's also cache line alignment. In your case we should
> > change pretty much any data structure in QEMU that is in a critical data
> > path to use *int*_t.
>
> Not at all, _Bool is smaller or equal to int and thus can only improve
> packing.
That's not what standard says:
6.2.5#2
An object declared as type _Bool is large enough to store the values 0 and
It later goes on to say (6.7.2.1 fn120):
While the number of bits in a _Bool object is at least CHAR_BIT, the width
(number of sign and value bits) of a _Bool may be just 1 bit.
>
> If you want to align explicitly, use alignment attributes.
>
>
--
mailto:av1474@comtv.ru
next prev parent reply other threads:[~2010-08-19 12:53 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-12 17:50 [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules Blue Swirl
2010-08-13 19:37 ` [Qemu-devel] " Blue Swirl
2010-08-17 8:09 ` [Qemu-devel] " Jes Sorensen
2010-08-17 17:56 ` Blue Swirl
2010-08-17 18:55 ` malc
2010-08-17 19:23 ` Jes Sorensen
2010-08-17 19:24 ` malc
2010-08-17 19:43 ` Jes Sorensen
2010-08-17 20:29 ` Anthony Liguori
2010-08-17 20:33 ` malc
2010-08-17 18:39 ` Richard Henderson
2010-08-17 19:15 ` Jes Sorensen
2010-08-18 16:46 ` Avi Kivity
2010-08-19 7:58 ` Jes Sorensen
2010-08-19 8:10 ` Avi Kivity
2010-08-19 8:17 ` Jes Sorensen
2010-08-19 12:24 ` Avi Kivity
2010-08-19 12:52 ` malc [this message]
2010-08-19 12:59 ` Avi Kivity
2010-08-18 8:35 ` [Qemu-devel] " Paolo Bonzini
2010-08-18 8:58 ` Jes Sorensen
2010-08-18 10:30 ` Kevin Wolf
2010-08-18 13:57 ` Paolo Bonzini
2010-08-18 16:55 ` Avi Kivity
2010-08-19 7:51 ` Paolo Bonzini
2010-08-19 8:12 ` Avi Kivity
2010-08-18 16:44 ` [Qemu-devel] " Avi Kivity
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=alpine.LNX.2.00.1008191645010.4502@linmac \
--to=av1474@comtv.ru \
--cc=Jes.Sorensen@redhat.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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;
as well as URLs for NNTP newsgroup(s).