Am Freitag 11 Februar 2011, 22:42:28 schrieb Blue Swirl: > > +/* Convenient binary macros */ > > +#define HEX__(n) 0x##n##LU > > +#define B8__(x) (((x&0x0000000FLU) ? 1 : 0) \ > > + + ((x&0x000000F0LU) ? 2 : 0) \ > > + + ((x&0x00000F00LU) ? 4 : 0) \ > > + + ((x&0x0000F000LU) ? 8 : 0) \ > > + + ((x&0x000F0000LU) ? 16 : 0) \ > > + + ((x&0x00F00000LU) ? 32 : 0) \ > > + + ((x&0x0F000000LU) ? 64 : 0) \ > > + + ((x&0xF0000000LU) ? 128 : 0)) > > +#define B8(d) ((unsigned char)B8__(HEX__(d))) > > These could be handy elsewhere too. This is copied from microblaze/cris. Should it be moved to qemu-common.h?
Replacing #define B8(d) ((unsigned char)B8__(HEX__(d))) with #define B8(d) ((unsigned char)B8_(0x##n##LU)) to avoid poisoning the default namespace too much? -- Michael