On .NET Framework with 32bit environment, JIT compiler uses FPU instruction such as fld or fmul than vmovss or vmulss instructions. As far as I know, FPU instructions are quite obsolete now, and I am just curious why JIT compiler uses FPU instructions.
My first thought is this is just for backward compatibility. Unlike .NET Framework, .NET Core does not uses FPU instructions when they use 32bit environment. But I think this is not just for compatibility because:
- Both use of FPU and SSE satisfies ECMA-334, so using SSE instructions instead of FPU should not impact the programs unless they made some programs that assumes using FPU.
- JIT compiler knows machine if the machines support SSE instructions, they have no reason to emit assembly with FPU if machine supports SSE.
So... I have no idea about this. Why .NET Framework with 32bit environment uses FPU?
https://stackoverflow.com/questions/65556558/why-net-framework-with-32bit-uses-fpu-but-not-sse-instructions January 04, 2021 at 09:06AM
没有评论:
发表评论