winamp/Src/external_dependencies/openmpt-trunk/include/ancient/src/common/Common.cpp

29 lines
411 B
C++

/* Copyright (C) Teemu Suutari */
#include "Common.hpp"
namespace ancient::internal
{
uint32_t rotateBits(uint32_t value,uint32_t count)
{
static const uint8_t rotateNibble[16]={
0x0,0x8,0x4,0xc,
0x2,0xa,0x6,0xe,
0x1,0x9,0x5,0xd,
0x3,0xb,0x7,0xf
};
uint32_t ret=0;
for (uint32_t i=0;i<count;i+=4)
{
ret=(ret<<4)|rotateNibble[value&0xf];
value>>=4;
}
ret>>=(4-count)&3;
return ret;
}
}