おkでした。
やっぱりx86(リトルエンディアン)とPowerPCのビッグエンディアンのせいでした。
(問題があったのはビットローテートとは関係無い部分ですが)


解決したのでお礼がわりに貼っておきます。(ビットローテートの部分だけ)

int __rotl (unsigned long d32, unsigned int nShift)
{
asm violate ("rotlw %0,%1,%2" : "=r"(d32) : "0"(d32), "r"(nShift));
return d32;
}

こんなかんじ。ありがとうありがとうありがとう。