|
52 | 52 | // Our goal here is to touch each page between %rsp+8 and %rsp+8-%rax,
|
53 | 53 | // ensuring that if any pages are unmapped we'll make a page fault.
|
54 | 54 | //
|
55 |
| -// This function is unsafe because it uses a custom ABI, it does not actually match `extern "C"`. |
| 55 | +// FIXME(abi_custom): This function is unsafe because it uses a custom ABI, |
| 56 | +// it does not actually match `extern "C"`. |
56 | 57 | //
|
57 | 58 | // The ABI here is that the stack frame size is located in `%rax`. Upon
|
58 | 59 | // return we're not supposed to modify `%rsp` or `%rax`.
|
@@ -143,7 +144,8 @@ pub unsafe extern "C" fn __rust_probestack() {
|
143 | 144 | // that on Unix we're expected to restore everything as it was, this
|
144 | 145 | // function basically can't tamper with anything.
|
145 | 146 | //
|
146 |
| -// This function is unsafe because it uses a custom ABI, it does not actually match `extern "C"`. |
| 147 | +// FIXME(abi_custom): This function is unsafe because it uses a custom ABI, |
| 148 | +// it does not actually match `extern "C"`. |
147 | 149 | //
|
148 | 150 | // The ABI here is the same as x86_64, except everything is 32-bits large.
|
149 | 151 | #[unsafe(naked)]
|
@@ -190,7 +192,8 @@ pub unsafe extern "C" fn __rust_probestack() {
|
190 | 192 | // probestack function will also do things like _chkstk in MSVC.
|
191 | 193 | // So we need to sub %ax %sp in probestack when arch is x86.
|
192 | 194 | //
|
193 |
| -// This function is unsafe because it uses a custom ABI, it does not actually match `extern "C"`. |
| 195 | +// FIXME(abi_custom): This function is unsafe because it uses a custom ABI, |
| 196 | +// it does not actually match `extern "C"`. |
194 | 197 | //
|
195 | 198 | // REF: Rust commit(74e80468347)
|
196 | 199 | // rust\src\llvm-project\llvm\lib\Target\X86\X86FrameLowering.cpp: 805
|
|
0 commit comments