Microsoft X64 uses callee saved registers convention unlike the other architectures. The assembler optimizations don't account for this, and can overwrite some register values used by the calling function.
In my tests, this happened when a float value was being stored in a register (usually xmm6 or xmm7) in the calling function. Godot for Windows had to turn asm optimizations off because of this. Other projects might be affected without knowing. Some builds can be unaffected depending on how registers are allocated.