You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- The address of the block is substituted into the asm template string. The assembly code may jump to the substituted address.
360
360
- After execution of the block, the `asm!` expression returns.
361
361
- The type of the block must be unit or `!` (never).
362
-
- The block starts a new safety context; despite the outer `unsafe` block needed for `asm!`, unsafe operations within the `label` block must be wrapped in an inner `unsafe` block.
362
+
- The block starts a new safety context: unsafeoperations within the `label` block must be wrapped in an inner `unsafe` block, even though the entire `asm!` statement is already wrapped in `unsafe`.
363
363
364
364
```rust
365
365
# #[cfg(target_arch ="x86_64")]
@@ -1331,7 +1331,7 @@ r[asm.rules.arm64ec]
1331
1331
1332
1332
r[asm.rules.only-on-exit]
1333
1333
- The requirement of restoring the stack pointer and non-output registers to their original value only applies when exiting the assembly code.
1334
-
- This means that assembly code that never return (even if not marked `noreturn`) don't need to preserve these registers.
1334
+
- This means that assembly code that never returns (even if not marked `noreturn`) doesn't need to preserve these registers.
1335
1335
- When returning to a different `asm!` block than you entered (e.g. for context switching), these registers must contain the value they had upon entering the `asm!` block that you are *exiting*.
1336
1336
- You cannot exit an `asm!` block that has not been entered.
1337
1337
Neither can you exit an `asm!` block that has already been exited (without first entering it again).
0 commit comments