/* { dg-do compile } */ | |
/* { dg-options "-O2 -mcpu=51qe -fdisable-ipa-pure-const -fdump-rtl-pro_and_epilogue" } */ | |
/* { dg-final { scan-rtl-dump-times "unspec_volatile" 1 "pro_and_epilogue"} } */ | |
char F(short *ty); | |
short V(char cmd) | |
{ | |
static short st256; | |
static short stc; | |
short sc; | |
short scd; | |
short d; | |
F(&sc); | |
if (cmd == 4) | |
{ | |
st256 = 0; | |
d = 0; | |
} | |
else | |
{ | |
scd = sc - stc; | |
if (scd < -128) | |
{ | |
scd += 256; | |
} | |
d = st256 >> 8; | |
st256 -= d << 8; | |
} | |
stc = sc; | |
return d; | |
} | |