This file used to have inline assembly that would only compile with msvc, a new code path was added for other compilers, but keeping the original assembly exactly so that compilation with msvc will continue to generate the exact same instructions.
A summary of the changes:
When msvc isn't used to compile this file the preprocesor will emit a warning instead of an error with a message that lets the user know he's doing something that isn't supported.
included the utility and memory headers from the standard library
added a version for the inline assembly that can be compiled with Mingw
This is the generated machine code of the assembly for and used only for mingw as compiled by mingw:
This file used to have inline assembly that would only compile with msvc, a new code path was added for other compilers, but keeping the original assembly exactly so that compilation with msvc will continue to generate the exact same instructions.
A summary of the changes:
This is the generated machine code of the assembly for and used only for mingw as compiled by mingw: