Reloaded-Project / Reloaded-III

[WIP] Formal Specification for the Next Iteration of Reloaded
https://reloaded-project.github.io/Reloaded-III/
9 stars 1 forks source link

Replace Instruction Sets with Microarchitecture Levels for x86 #15

Closed Sewer56 closed 5 months ago

Sewer56 commented 9 months ago

The current documentation, for example https://reloaded-project.github.io/Reloaded-III/Loader/Backends/Native/ segregates various CPU features by the inclusion of direct instruction set extensions.

A more optimal approach to this would be instead grouping by Microarchitecture Levels.

In the case of Rust, the toolchains are powered by LLVM and/or GCC for code generation; so the targets should be available for just about all platforms. This works even when targeting MSVC.

In the case of those building with Visual C++, templates should target Clang/LLVM; which unlocks the ability to target microarchitecture levels (and currently seem to generate better codegen anyway). Lastly, for those strictly requiring MSVC for whichever reason, we can approximate with the /arch flags. This should work because the /arch flags represent a subset of the individual microArch levels.

Sewer56 commented 5 months ago

Done in latest version.