[U-Boot] [PATCH v5] bitops: introduce BIT() definition

Scott Wood scottwood at freescale.com
Wed Sep 9 20:59:17 CEST 2015


On Wed, 2015-09-09 at 21:52 +0300, Ivan Khoronzhuk wrote:
> On 09.09.15 19:22, Scott Wood wrote:
> > On Tue, 2015-09-08 at 21:01 +0300, ivan.khoronzhuk wrote:
> > > Hi, Andreas
> > > 
> > > On 07.09.15 14:43, Andreas Bießmann wrote:
> > > > From: Heiko Schocher <hs at denx.de>
> > > > 
> > > > introduce BIT() definition, used in at91_udc gadget
> > > > driver.
> > > > 
> > > > Signed-off-by: Heiko Schocher <hs at denx.de>
> > > > [remove all other occurrences of BIT(x) definition]
> > > > Signed-off-by: Andreas Bießmann <andreas.devel at googlemail.com>
> > > > ---
> > > > Full buildman is running
> > > > 
> > > 
> > > ....
> > > 
> > > > 
> > > > +#define BIT(nr)            (1UL << (nr))
> > > 
> > > Why UL? Why not simply 1 << (nr)?
> > 
> > That would give the wrong result for nr == 31 if used as a 64-bit number, 
> > and
> Did you mean with 64-bit signed number?

No.

"u64 x = 1 << 31" will put 0xffffffff80000000 in x, because (unlike 
0x80000000 as a constant) "1 << 31" is signed.

-Scott



More information about the U-Boot mailing list