compnerd wrote:

Not entirely - `_fltused` indicates that any floating point operations are 
being used. The problem is that the kernel mode code does not permit floating 
point operations (though you can explicitly use `KeSaveFloatingPointState` and 
`KeRestoreFloatingPointState` to explicitly use floating point code in a 
region). The `_fltused` is a protection mechanism for that, with the user space 
C++ runtime ("ABI library" - a la libc++abi) support library (vcruntime) 
providing a default definition of the symbol. That way, if the user 
accidentally uses floating point code in the kernel, it is identified at link 
time and prevents the errant use. Doing this post legalization makes sense 
though.

https://github.com/llvm/llvm-project/pull/100368
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to