about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorDavid Rheinsberg <david.rheinsberg@gmail.com>2019-02-13 11:50:09 +0100
committerDavid Rheinsberg <david.rheinsberg@gmail.com>2019-02-13 11:55:17 +0100
commit15e4bd3bf460a4a943465534132a9d3eda5eb798 (patch)
tree76669c1bfed1e1aa5295c191f76972c518fc1833 /src/libsyntax/parse/parser.rs
parent827a141466e7bb85eb3c030600878a2c606019e9 (diff)
downloadrust-15e4bd3bf460a4a943465534132a9d3eda5eb798.tar.gz
rust-15e4bd3bf460a4a943465534132a9d3eda5eb798.zip
target/uefi: clarify documentation
This clarifies why FP-units are disabled on UEFI targets, as well as
why we must opt into the NXCOMPAT feature.

I did find some time to investigate why GRUB and friends disable FP on
UEFI. The specification explicitly allows using MMX/SSE/AVX, but as it
turns out it does not mandate enabling the instruction sets explicitly.
Hence, any use of these instructions will trigger CPU exceptions,
unless an application explicitly enables them (which is not an option,
as these are global flags that better be controlled by the
kernel/firmware).

Furthermore, UEFI systems are allowed to mark any non-code page as
non-executable. Hence, we must make sure to never place code on the
stack or heap. So we better pass /NXCOMPAT to the linker for it to
complain if it ever places code in non-code pages.

Lastly, this fixes some typos in related comments.
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
0 files changed, 0 insertions, 0 deletions