Use a union on ARM to ensure alignment for floating point loads

I hope this fixes ARM. I have no way to test.