Есть код:
CODE
#define UINT unsigned int
#define UINT64 unsigned long long
....
UINT64 iValue;
UINT iOffset;
iOffset = rand()&63;
iValue = (UINT64)(1) << iOffset;
компилятор генерит такой асм:
CODE
_BLF rand,??rand??rT
LSLS R2,R0,#+26
LSRS R2,R2,#+26
MOVS R0,#+1
MOVS R1,#+0
_BLF ??lllsl_t,??rT??lllsl_t
т. е. он юзает функцию lllsl_t для сдвига. Как заставить его обойтись без этой функции, т. е. через простые операции, если это конечно, возможно?
Нет повести печальнее на свете, чем повесть о хреновом интернете.