That's a little strange. I am positive that __RBIT is correct and I use the macros in the exact same way almost everyday as part of a bootloader.
The only thing that I can think of is to check in the initial conditions of whatever tool you use on your computer.
In order to calculate the crc32 on my computer, I have been using python's binascii module:
http://docs.python.org/2/library/binascii.htmlBy default, the binascii module loads 0 into it's internal data register where as the stm32f4 has the value 0xFFFFFFFF in it's data register after you set the reset bit.
This caused a bit of trouble on my end if you can imagine

. Once I made sure they both started with the same initial conditions and I made those modifications to reading and writing to the data register, the two implementations have matched up extremely well.