/* PR rtl-optimization/17825 */ | |
#ifdef __i386__ | |
register unsigned int reg __asm ("esi"); | |
#elif defined __x86_64__ | |
register unsigned int reg __asm ("r14"); | |
#else | |
unsigned int reg; | |
#endif | |
struct S | |
{ | |
unsigned int h[8]; | |
} *b; | |
unsigned int c; | |
void foo (int); | |
void | |
bar (void) | |
{ | |
unsigned int j, k, l, m; | |
j = (reg & 0xffff) | ((b->h[2] & 0xffff) << 16); | |
k = c & 0xffff; | |
if (k == 0) | |
foo (0); | |
l = (j / k) & 0xffff; | |
m = (j % k) & 0xffff; | |
reg = (reg & 0xffff0000) | l; | |
b->h[2] = (b->h[2] & 0xffff0000) | m; | |
} |