Something like fmove.s #1,fp0 or .d produces the wrong constant, but fmove.s #1.0,fp0 is ok. I.e. the first will treat #1 as an integer and deposit that instead of a IEEE float. This is probably going to add a lot of confusion so it's probably a good idea to either error out when entering a non-float constant or to silently cast the integer to float.