Draft: Allow dynamic kernel code optimization based on CPU features
Adds support for AVX2 as well.
Needs bootloader!12 (closed)
Edited by Jacob Lorentzon
Merge request reports
Activity
Filter activity
mentioned in merge request bootloader!12 (closed)
added 15 commits
-
c0f82717...42de1f3e - 6 commits from branch
redox-os:master
- 7b28817a - Support load-time code patching for CPU features.
- 2bfbb365 - Allow marking CPU features "always" or "never".
- c87f5a3c - Replace feature x86_fsgsbase with alternative!
- 423da026 - Add alternative2!.
- cee9d94d - Add support for XSAVE/XSAVEOPT, thus AVX/AVX2.
- 39c641ea - Work correctly with --gc-sections.
- 89fd8a31 - Add xsave and xsaveopt to config.default.toml
- 70da6f6a - Use try_stop_context for float regs.
- a50b4d6e - Fix AVX2 state save/restore.
Toggle commit list-
c0f82717...42de1f3e - 6 commits from branch
added 1 commit
- 90d73352 - Check that cpu_feature_always features exist.
added 1 commit
- fe61b363 - Add "always" CPU features, but check they exist.
I managed to fix the nop-filling code, so the lengths of neither the default nor the replacement sequence of instructions, need to be adjusted. However, it only fills with 1-byte NOPs, and for some not necessarily technical reason, GAS doesn't allow
.nops length
(multi-byte NOPs) with non-constant length. It could be worked around temporarily, but ideally would be patched in binutils.added 50 commits
-
5265e8cd...acefb888 - 38 commits from branch
redox-os:master
- acefb888...7fb9b4c6 - 2 earlier commits
- 93c56d32 - Replace feature x86_fsgsbase with alternative!
- 738336dd - Add alternative2!.
- f1b2b0c3 - Add support for XSAVE/XSAVEOPT, thus AVX/AVX2.
- 55200ead - Work correctly with --gc-sections.
- c4934790 - Add xsave and xsaveopt to config.default.toml
- b960ce29 - Use try_stop_context for float regs.
- 4db9e3f3 - Fix AVX2 state save/restore.
- ffbfd7f3 - Check that cpu_feature_always features exist.
- c214aa98 - Add "always" CPU features, but check they exist.
- 711441ac - Fix warnings.
Toggle commit list-
5265e8cd...acefb888 - 38 commits from branch
added 159 commits
-
1f0220af...eeb0d8c1 - 145 commits from branch
redox-os:master
- eeb0d8c1...996f11f7 - 4 earlier commits
- a0a21c89 - Add support for XSAVE/XSAVEOPT, thus AVX/AVX2.
- 6e8b79d7 - Work correctly with --gc-sections.
- 7f323c61 - Add xsave and xsaveopt to config.default.toml
- 34dc0a9d - Use try_stop_context for float regs.
- 54e84b27 - Fix AVX2 state save/restore.
- 3d814035 - Check that cpu_feature_always features exist.
- 89b9c00d - Add "always" CPU features, but check they exist.
- a705b878 - Fix warnings.
- 238946a0 - Rerun-if-changed config.toml on all architectures.
- 2b76f5b3 - Use multi-byte NOPs for XSAVE.
Toggle commit list-
1f0220af...eeb0d8c1 - 145 commits from branch
Please register or sign in to reply