Hi.
For a program I'm writing, I must use 64-bit datatypes on a IA-32
host. Since performance is everything for this application, I'm
looking at the code that GCC generates; and I have found something
that I think could be done better. Take the following example:
register unsigned long long v0 asm ("%esi");
union u
{
unsigned int ww[2];
unsigned long long ll;
};
extern int p1, p2;
#define P1 ((int) &p1)
#define P2 ((int) &p2)
static void
move1 (void)
{
v0 = (((unsigned long long) P1 << 32) & 0xffffffff00000000ULL
| ((unsigned long long) P2) & 0xffffffffULL) ;
}