Cause register is actually 32 bits

Cast it to uint32_t first to avoid bogus sign extension if the BD bit
is set.