3.58
long decode2(long x, long y, long z)
{
y -= z;
x *= y;
y <<= 63;
y >>= 63;
y ^= x;
return y;
}
3.59
3.60
long loop(long x, int n)
{
long result = 0;
long mask;
for (mask = 1; mask != 0; mask <<= n)
{
result |= (mask & x);
}
return result;
}
//A. x:%rdi, n:%ecx, result:%rax, mask:%rdx
3.61
long cread_alt(long* xp)
{
return (!xp ? 0 : *xp);
}